XSS 主动点按钮有什么损害?
在交际网络里,许多操作都是经过点击按钮建议的,例如宣布留言。假设留言体系有 XSS 缝隙,用户中招后 XSS 除了进犯之外,还能进行传达 —— 它能主动填入留言内容,并点击宣布按钮,即可宣布带有恶意代码的留言。老友看了中招后,又传达给他们的老友。。。然后构成蠕虫分散。
那么,有没有一种机制,让「宣布留言」有必要经过用户的「实在点击」按钮才干完结,而无法经过脚本主动完成?这样就能减缓蠕虫传达速度了。
这个主意听起来如同不行行。假设宣布留言需求带上用户行为信息,那么 XSS 完全能够假造一份行为数据,后端底子无法辨认。
除非,用户在点击按钮时会发生一个「特别数据」,让后端校验它。
可是,XSS 也能够直接调用按钮米素的 click 方法,这样作用和用户点击依然相同。后端仍无法辨认,是脚本点的,仍是用户点的。
这么看来,咱们只能保护好这个「按钮米素」,让它无法被 XSS 访问到。例如,放在一个 不同源的 iframe 里 ,这样就和 XSS 地点的环境隔离了!
不过,这样还不行。假设 XSS 破解了这个「特别数据」的生成规矩,那么即可自己假造一个,然后直接调用 HTTP 接口宣布留言。所以,咱们得找一个不行假造的硬标识。
事实上,有个很简单的方法:咱们爽性 让 HTTP 恳求也经过 iframe 发送 。这样,后端经过 referer 即可检测恳求是否为 iframe 建议的。究竟,XSS
[1] [2] [3] 黑客接单网