Выражение ReqEx для проверки формы - PullRequest
0 голосов
/ 26 декабря 2011

Я пытаюсь добавить проверку формы на свой сайт html, чтобы предотвратить атаки с использованием xss-инъекций.

Я использую простой валидатор java-формы genvalidator_v4.js, который позволяет мне использовать выражения регулярных выражений, чтобы определить, что разрешено в текстовом поле. Я пытаюсь написать такой, который бы запретил «<» или «>» или любые другие теги, которые могли бы использоваться в этом типе атаки, но все же позволял бы использовать буквенно-цифровые, знаки пунктуации и другие специальные символы.

Есть идеи? Также открыт для других методов предотвращения xss-атак, но я очень неопытен в этой области, поэтому, пожалуйста, держите это как можно проще.

1 Ответ

0 голосов
/ 26 декабря 2011

Вы пытаетесь черный список опасный ввод. Это очень сложно, очень легко ошибиться из-за большого количества токенов, которые могут быть опасными.

Таким образом, вместо этого рекомендуются следующие две практики:

  • Escape все прочитанное из базы данных перед выводом на веб-страницу. Если вы правильно HtmlEncode все (ваш язык выбора, безусловно, имеет метод библиотеки для этого), не имеет значения , если пользователь ввел <script>/* do something evil */</script> и этот код был сохранен в вашей базе данных. Правильно закодированный, он будет напечатан дословно и не причинит вреда.

  • Если вы все еще хотите отфильтровать ввод (что может быть полезно в качестве дополнительного слоя безопасности), белые списки обычно безопаснее черных списков , Таким образом, вместо того, чтобы говорить, что < вредно, вы говорите, что буквы, цифры, знаки препинания и т. Д. Безопасны. Что именно безопасно, зависит от типа поля, которое вы фильтруете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...