To prevent XSS attacks, output escaping has been enabled;
以上来自symfony,但我看不懂。
最佳答案
XSS 是“跨站脚本”的缩写。当您设法将脚本(通常是 javascript)偷偷溜到其他人的网站上并在那里恶意运行时,就会发生跨站点脚本攻击。
当用户向网站输入内容时,就有可能发生 XSS。例如,如果我正在填写一个网络表单,它询问我的名字,我可以输入 My name is <script src="http://bad.domain/evilscript.js"></script>
。如果我提交表单,然后在下一页上要求我确认我的详细信息并重新输出我输入的内容,我输入的讨厌的 HTML 标签将被渲染,并且脚本将被下载并由浏览器运行。
为了防止这种情况,您需要转义用户输入。转义意味着您转换(或标记)数据的关键字符,以防止其在危险的上下文中被解释。对于 HTML 输出,您需要转换 <
和 >
字符(以及其他字符),以防止呈现任何恶意 HTML。转义这些字符涉及将它们转换为实体等价物 <
和 >
(请参阅 PHP 的 htmlspecialchars() 函数),浏览器不会将其解释为 HTML 标记。
Symfony 试图告诉您的是,它有能力为您的输出自动执行此操作,并且该功能已启用。
关于symfony1 - 如何利用转义来防止XSS攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159724/