你网站开了评论功能,有人发了条评论,内容里带一段script代码。其他客户打开文章,浏览器执行了这段代码,弹窗跳转到赌博网站。这就是XSS跨站脚本攻击。

XSS是什么原理

你网站允许用户输入内容(评论、留言、用户名)。如果没有过滤,用户输入的HTML代码会被其他客户的浏览器执行。黑客就利用这一点,在输入框里塞恶意脚本。

常见的XSS攻击:偷Cookie跳转到钓鱼网站、篡改页面内容显示虚假广告、窃取客户登录状态。

怎么防

第一,所有用户输入都过滤。免费CMS本身有基础XSS过滤,但你要确认开着。评论区、留言板、用户名这些地方,把HTML标签转义。客户输入的内容只显示为纯文本,不执行。

第二,别允许用户发HTML。评论区只允许纯文字。别搞「支持HTML评论」这种功能。

第三,上传文件要检查类型。客户上传图片的时候,只允许jpg/png/webp。别允许上传.php、.html、.svg这些可执行文件。SVG文件里也能藏脚本。

第四,前面讲的CSP安全头。就算过滤有漏,CSP会拦住不在白名单的脚本执行。双保险。

怎么测试自己网站有没有XSS漏洞

在评论区自己发一条测试评论,内容是。提交之后打开文章,如果弹出一个小窗口显示1,说明你网站有XSS漏洞,赶紧修复。如果这段代码被转义显示为纯文本,说明防护正常。

小站被XSS搞一次,百度直接标记为恶意网站,恢复要很久。防护从第一天就做好。