Я пытаюсь определить, как поддерживает фреймворк Play.
Это хорошая страница, в которой перечислены необходимые функции: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
Итак, я пытаюсь связать это с функциями Play template и полностью понять, что делает и что делает.
- HTML-экранирование:
${}
илиescape()
функция - Активация атрибута: я не могу найти встроенное решение
- JavaScript escaping: there
escapeJavaScript()
http://www.playframework.org/documentation/1.2/javaextensions - CSS escaping: я не могу найти встроенное решение
- Устранение URL-адресов: ничего специального встроенного, но обычного Java-решения, например. Java эквивалентен JavaScript-кодировщику, который производит идентичный вывод? - Обновление: там urlEncode() в http://www.playframework.org/documentation/1.2/javaextensions
Еще одна путаница - поддержка index.json
(т.е. использование шаблонов для сборки JSON вместо HTML). ${}
волшебным образом переключается на экранирование JavaScript в документе JSON или все еще выходит из HTML, поэтому все в шаблоне JSON должно иметь явный escapeJavaScript()
?
Также есть addSlashes() на http://www.playframework.org/documentation/1.2/javaextensions, но это не кажется правильным для любой из ситуаций, которые я могу думать из. (?)
Было бы здорово иметь подробное руководство о том, как делать все вкусы побега в Play. Мне кажется, что в нескольких случаях ответ "катитесь", но, возможно, мне не хватает того, что включено.