angyLe
2/19/2016 - 9:59 AM

security asp

security asp

 Проанализируйте отдачу HTML кода вашего сайта
Например, код такого вида Response.Write(Request.Form["name"]); передает клиенту не обработанные параметры из HTTP запроса, это не безопасно. Атакующий сможет передать в параметре, например, вот такой код: <script>alert('hello');</script> который выполнится у клиента.
Обрабатывайте отдаваемый HTML
Если данные которые вы отображаете созданы пользователем(например комментарии в блоге), при отображении надо воспользоваться методом HttpUtility.HtmlEncode() который заменяет все специальные символы(<, > и т.д.).
Кодируйте URL строки
Аналогично HTML, кодируются URL строки полученные от пользователя методом HttpUtility.UrlEncode
Фильтрация пользовательских данных
Если ваша ASP.NET страница с богатым функционалом принимает от пользователя данные с HTML, например, есть возможность использовать HTML форматирования, приходится отключать request validation. В таком случае стоит фильтровать все HTML тэги кроме пары базовых, типа <b> и <i>, на стороне сервера. Пример кода:
StringBuilder sb = new StringBuilder( HttpUtility.HtmlEncode(htmlInputTxt.Text));
sb.Replace("&lt;b&gt;", "<b>");
sb.Replace("&lt;/b&gt;", "</b>");
sb.Replace("&lt;i&gt;", "<i>");
sb.Replace("&lt;/i&gt;", "</i>");
Не доверяйте кукам(Cookie)
Используйте атрибут security="restricted" у frame.
Применяйте innerText а не innerHTML в вашем коде.