Symfony1 如何使用转义来防止XSS攻击?

Symfony1 如何使用转义来防止XSS攻击?,symfony1,xss,escaping,Symfony1,Xss,Escaping,要防止XSS攻击,请输出 已启用转义 上面的内容来自symfony,但我不明白。XSS,或者是当其他人的javascript由您的服务器提供时。例如,如果您可以从google.com获得随机javascript,那么您可以让javascript向您发送google所知道的关于服务对象的所有信息 可能来自用户(而不是服务器/内容作者)的“避免此数据”中包含尖括号和其他类似HTML的内容,以便最终用户不会执行这些数据。XSS是“跨站点脚本”的缩写。当您设法将脚本(通常是javascript)偷偷带到

要防止XSS攻击,请输出 已启用转义

上面的内容来自symfony,但我不明白。

XSS,或者是当其他人的javascript由您的服务器提供时。例如,如果您可以从google.com获得随机javascript,那么您可以让javascript向您发送google所知道的关于服务对象的所有信息


可能来自用户(而不是服务器/内容作者)的“避免此数据”中包含尖括号和其他类似HTML的内容,以便最终用户不会执行这些数据。

XSS是“跨站点脚本”的缩写。当您设法将脚本(通常是javascript)偷偷带到其他人的网站上时,就会发生跨站点脚本攻击,而该脚本可能会在该网站上恶意运行

当您将用户输入到web站点时,XSS是可能的。例如,如果我正在填写一个web表单,它问我的名字,我可以输入
我的名字是
。如果我提交表单,然后在下一页上,它要求我确认我的详细信息并重新输出我输入的内容,我输入的讨厌的HTML标记将被呈现,脚本将被下载并由浏览器运行

为了防止这种情况,您需要退出用户输入。转义意味着转换(或标记)数据的关键字符,以防止在危险的上下文中对其进行解释。在HTML输出的情况下,您需要转换
字符(以及其他字符),以防止任何恶意HTML呈现。转义这些字符需要将它们转换为实体等价物
(参见PHP的函数),浏览器不会将其解释为HTML标记


Symfony试图告诉您的是,它有能力为您的输出自动执行此操作,并且该功能已启用。

您的意思是更改
不会更改
是,将重要的元字符更改为显示正确字形的实体,但是没有相同的处理效果。最好是对输出进行过滤,而不是对输入进行过滤。使用HTML净化器。请注意转义取决于上下文。请特别参阅XSS预防规则