问题:如何预防XSS?Web前端面试题解析:XSS攻击有两大要素:1.攻击者提交恶意代码。2.浏览器执行恶意代码。针对第个要素:我们是否能够在用户输入的过程,过滤掉用户输入的恶意代码呢?输入过滤在用户提交时,由前端过滤输,然后提交到后端。这样做是否可行呢?答案是不可行。旦攻击者绕过前端过滤,直接构造请求,就可以提交恶意代码了。那么,换个过滤时机:后端在写数据库前,对输进行过滤,然后把“安全的”内容,返回给前端。这样是否可行呢?我们举个例,个正常的用户输入了57这个内容,在写入数据库前,被转义,变成了57。问题是:在提交阶段,我们并不确定内容要输出到哪。这的“并不确定内容要输出到哪”有两层含义:1.用户的输入内容可能同时提供给前端和客户端,而旦经过了escapeHTML(),客户端显示的内容就变成了乱码(57)。2.在前端中,不同的位置所需的编码也不同。当57作为HTML拼接页面时,可以正常显示:divtitle=
转载请注明:http://www.aierlanlan.com/cyrz/7275.html