当前位置: 首页 > Web前端 > HTML

Web如何防止XSS攻击

时间:2023-04-02 22:08:11 HTML

什么是XSS跨站脚本(CrossSiteScripting),为了不和CascadingStyleSheets(CSS)的缩写混淆,所以将跨站脚本攻击简称为XSS。恶意攻击者将恶意脚本代码插入网页。当用户浏览网页时,网页中嵌入的Script代码就会被执行,从而达到恶意攻击用户的目的。文中很多图片无效。推荐收听XSS免费视频课程,PC端访问:https://www.imooc.com/learn/812笔记扫码学习:XSS原理恶意攻击者在网页中插入恶意html代码,当用户浏览页面时,会执行Web中嵌入的(html代码/javascript代码),从而达到恶意攻击用户的特殊目的。微博XSS危害示例2011年6月28日晚,新浪微博遭到XSS蠕虫病毒攻击。不到一个小时,3万多微博用户被XSS蠕虫攻击。这件事给严重依赖社交网络的网民敲响了警钟。此前,国内多家知名SNS网站和大型博客网站都曾遭遇过类似攻击,但并未形成如此大规模的传播。虽然在这次XSS蠕虫攻击事件中,恶意黑客并没有植入挂马代码的恶意脚本或者其他窃取用户账号密码信息的脚本,但这至少说明病毒、木马等黑色产业已经盯上了这个XSS蠕虫攻击。仍然存在脆弱性的领域。猫扑曾在猫扑大杂烩中出现过这样一个XSS漏洞。当用户发表回复时,程序严格过滤了用户发表的内容,但是不知道为什么,当用户编辑回复内容再次发布时,又使用了另一种不同的过滤方式,引入了这种过滤方法显然不严谨,从而导致XSS漏洞的出现。试想一下,如果像猫扑这样的大型社区,在一个热门帖子中使用XSS漏洞,让所有浏览此帖子的用户在不知不觉中访问另一个站点,如果这个站点也是大型站点还好,但如果是中小型站点,那将是一场悲剧。会吸引多少流量!更可怕的是,这些流量都是真实有效的!详情页的XSS防护措施业务描述详情页都需要显示富文本,即用户输入的HTML内容。[展示1][展示2]历史方法转义可以在客户端也可以在服务端进行,转义是通过Django的safefilter实现的。潜在问题熟悉DOM工作原理的同学一定知道,如果在DOM中插入其他HTML内容,会存在潜在的安全问题,比如修改css,引入js等可以操作页面的内容。【示例1】

这里显示摘要内容,用户可以输入各种文字和图片

如果用户通过传统的操作方式进入这段内容,最终用户是看不到这个页面的任何内容的,只能是一个空白页面。【示例2】

这里显示摘要内容,用户可以输入各种文字和图片如果用户输入以上内容,则当前用户的cookie会悄悄发送到破解。com,当前用户无感知。你知道!【示例3】

这里显示摘要内容,用户可以输入各种文字和图片。如果用户输入了以上内容,恭喜,所有用户都被植入了这个脚本,也就是说这个脚本可以任意操作。【示例4】

这里显示的是摘要内容,用户可以输入各种文字和图片
如果用户输入以上内容,发现用户看到的页面已经乱了向上。因为div标签没有关闭。解决方案的目标是过滤任何影响页面的可执行脚本或CSS,以确保页面的安全。-Method![](http://p1.bpimg.com/567571/68bb369accc2edb3.png)通过这个处理,任何额外的威胁,比如脚本语句和style样式都将被视为文本,这可以纠正DOM配对不一致到一个一定程度。完全弄乱页面的症状。用户看到这样的情况,可以及时反馈,阻断恶意作者的攻击。