2013-04-15 2 views
4

Я думал о уязвимости XSS моего приложения. На стороне сервера я не дезинфицирую ни входной, ни выходной, поэтомуIs Mustache XSS-proof?

<script>alert(document.cookies)</script> 

хранится в базе данных именно так. Чтобы просмотреть это значение на стороне клиента, я использую Mustache. Если этот скрипт был выполнен администратором, то, конечно же, легко захватить его сеанс. Однако я заметил, что Усы по умолчанию ускользает эти значения & \ "<> при использовании {} {} синтаксис. Нужно ли мне беспокоиться о XSS, когда значение из базы данных будет вставлен в

<p>{{value}}</p> 

или даже

<p data-id='{{value}}'>something</p> 

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

<script>{{value}}</script> 

Я в безопасности?

ответ

1

Ну, вы всегда должны волноваться :) Но да, Усы достигают цели, о которой вы здесь говорите, защищая ваши примеры от XSS (кроме тех случаев, когда вы выводите значение непосредственно в тег <script>).

Примечание: убедитесь, что реализация Усы, которую вы используете, выдает одинарные кавычки. По-видимому, это не в спецификации, чтобы сделать это (https://github.com/mustache/spec/issues/69), но основные реализации, к счастью, избегают его в любом случае.

Смежные вопросы