xss漏洞防御方法

 我来答
小鱼数码资讯
2023-04-24 · TA获得超过452个赞
知道小有建树答主
回答量:6396
采纳率:100%
帮助的人:119万
展开全部

xss漏洞防御方法有输入过滤、纯前端渲染、转义HTML和标签和属性基于白名单过滤。

输入过滤:有时候需要多次过滤,例如<scrip<script>t>过滤掉<script>后还是<script>,需要注意多个过滤器的先后次序。当多个过滤器一起生效时,有可能后进行的过滤导致前面的过滤失效。

纯前端渲染:在纯前端渲染中,我们会明确的告诉浏览器:下面要设置的内容是文本(innerText),还是属性(setAttribute),还是样式(style)等等。浏览器不会被轻易的被欺骗,执行预期外的代码了。

转义HTML:如果拼接HTML是必要的,就需要采用合适的转义库,对HTML模板各处插入点进行充分的转义。常用的模板引擎,如ejs、FreeMarker等,对于HTML转义通常只有一个规则,就是把&、<、>、"、'、/这几个字符转义掉,确实能起到一定的XSS防护作用。

标签和属性基于白名单过滤:对于副文本编辑器来说,其产物本身就是html代码,所以没办法简单粗暴使用转义来处理,应该要对内容中的标签和属性,基于白名单进行过滤(附XSS黑名单:DOM中的内联事件监听器如onclick等、<a>标签的href属性、<script>标签、css中的url功能)。

xss攻击的原理

HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<title>与</title>之间的字符是页面的标题等等。

当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式