Я возглавляю Руководство OWASP, и мое мнение об этом изменилось с тех пор, как Руководство 2.0 было написано еще в 2004/2005 годах.
На мой взгляд, есть две фазы, с которыми вам нужно иметь дело:
Проверка ввода - вы всегда должны избегать вторжения векторов XSS в ваши данные, если вообщевозможный.У меня есть Views ™, но, честно говоря, лучшая ставка - строго печатать и ограничивать длину, насколько это возможно.Нет смысла разрешать сохранение логических или целочисленных переменных в виде текстового столбца.Остаточным риском будут текстовые области, хранящиеся в текстовых двоичных объектах, что должно быть очевидно при кодировании уровня представления, каким бы оно ни было.
Выходная кодировка - когда было написано оригинальное руководство (2002), мы делали «большую пятерку», что больше не соответствует действительности.Вам необходимо правильно выводить кодирование для контекста, поэтому, если вы выводите в Ajax, вам нужно сделать его безопасным как для JSON, так и для JavaScript, а также для HTML.
В работе находится новая версия Руководства, OWASP Guide 2013. Я буду следить за тем, чтобы оно было правильно обновлено.
Пожалуйста, зарегистрируйте проблему на трекере проблем нашего проекта, поскольку у вас есть очень серьезная проблема:
Зарегистрируйте проблему в трекере проблем OWASP Guide 2013
Дни простого кодирования для большой пятерки хорошо и действительно прошли.В частности, поскольку HTML вряд ли будет основным уровнем представления информации в будущем.
Эндрю ван дер Сток, Руководство OWASP 2.0 / 2013 Руководство.