Как обеспечить проверку безопасности сайта - PullRequest
1 голос
/ 16 февраля 2010

Как обезопасить форму от атак с использованием скриптов. Это одна из наиболее часто используемых форм атак, при которой злоумышленник пытается внедрить JS-скрипт через поле формы. Проверка в этом случае должна проверять наличие специальных символов в полях формы. Ищу предложения, рекомендации в Интернете / JQuery и т. д. для допустимых символов и JS коды подтверждения маскирования символов.

Ответы [ 6 ]

1 голос
/ 16 февраля 2010

Вероятно, лучшим справочным материалом для этого является OWASP XSS Prevention Sheet

1 голос
/ 16 февраля 2010

Если вы выводите контролируемый пользователем ввод в html-контексте, вы можете следить за тем, что делают другие и очищать при обработке ввода (html Очистка, проверка пользовательского ввода) и / или html, кодировать значения перед выводом.

Случаи, когда теги htmlencodng / strip (теги не нужны) недостаточны:

  1. пользовательский ввод появляется в атрибутах, тогда это зависит от того, всегда ли вы (двойные) цитируете атрибуты или нет (плохие)
  2. используется в обработчиках * (например, onload = "..), тогда html-кодирование недостаточно, так как синтаксический анализатор javascript вызывается после html-декодирования.
  3. появляется в разделе javascript - зависит от того, указан ли он в кавычках (кодирование htmlentity недостаточно) или в кавычках (очень плохо).
  4. возвращается как json, который может быть оценен. Javascript escape требуется.

Кроме того, они не учитывают недостатки браузера, такие как неполный эксплойт UTF-8, эксплойты по типу контента (недоработка UTF-7) и т. Д.

Конечно, вы также должны обрабатывать данные для защиты от других атак (SQL или внедрение команд).

1 голос
/ 16 февраля 2010

Вы можете использовать HTML-очиститель (в случае, если вы используете PHP или у вас могут быть другие параметры для вашего языка), чтобы избежать XSS (межсайтовый скриптинг) атаки на высоком уровне, но помните, что ни одно решение не является идеальным или 100% надежным. Это должно помочь вам и всегда помнить проверка на стороне сервера всегда лучше, чем полагаться на javascript, который злоумышленники могут легко обойти, отключив javascript.

Для SQL-инъекция вам необходимо экранировать недопустимые символы в запросах, которые можно использовать для манипулирования или внедрения ваших запросов, и использовать приведение типов для всех значений, которые вы хотите вставить в базу данных.

См. Руководство по безопасности , чтобы узнать больше угроз безопасности и как их избежать. Обратите внимание, что даже если вы не используете PHP, основные идеи по безопасности одинаковы, и это поможет вам лучше разобраться в вопросах безопасности.

0 голосов
/ 16 февраля 2010

Также есть OWASP EASPI .

0 голосов
/ 16 февраля 2010

вы можете предотвратить внедрение скрипта с помощью кодировки html-содержимого, например

Server.HtmlEncode (вход)

0 голосов
/ 16 февраля 2010

ASP.NET имеет функцию под названием Проверка запроса , которая предотвращает обработку незакодированного HTML сервером. Для дополнительной защиты можно использовать библиотеку AntiXSS .

...