Я использую Symfony2 / Twig / Doctrine.
Я смотрю на безопасность на своем сайте и, в частности, предотвращаю атаки XSS, но я не вижу, что еще я могу сделать.
настойчивый
Я использую Doctrine и всегда гарантирую, что я делаю пользовательский ввод безопасным, отказываясь от HTML, веб-адресов и адресов электронной почты и т. Д. (Если применимо, например, в поле комментариев). Я также использую Twig (который, я считаю, выходит из вывода).
отражающий
Я понимаю, что любой может отправить электронное письмо кому-либо со ссылкой на любой веб-сайт, который также вводит JavaScript. Это JS может, конечно, сделать что угодно. Для того, чтобы JS мог иметь форму входа в систему на любой веб-адрес, вы ничего не можете сделать (кроме надежды, что глупые люди не нажимают ссылки от случайных людей на страницу входа моего сайта).
Поэтому, если вы не можете помешать инъекции JS, то что еще я могу сделать?
Я не верю, что вы можете запретить сайту запускать JS-скрипт на другом сервере (мой действительный JS поступает из CDN в любом случае, который находится на другом сервере), и я не думаю, что вы можете предотвратить отправку HTML-формы на другой сервер ,
Я действительно верю, что защита междоменной защиты не позволяет внедренному JS, вызывающему запрос Ajax, хотя, но я ничего не сделал по этому поводу, я просто думаю, что так работают современные браузеры.
Что-нибудь еще в моих руках? До тех пор, пока я сделал все возможное, этого достаточно для меня.
Полагаю, мне интересно, почему я не могу это сделать, когда некоторые люди зарабатывают на жизнь советом по защите XSS. Может быть, это потому, что я использую Symfony2 / Twig / Doctrine?
Просто ищи помощь, чтобы прояснить мое понимание.
Политика безопасности контента решает проблему впрыска javascript, запрещая встроенный javascript и проверяя источники контента.
Информация: https://developer.mozilla.org/en-US/docs/Security/CSP/Using_Content_Security_Policy
Поддержка браузера: http://caniuse.com/contentsecuritypolicy