网站安全系列:跨站脚本攻击XSS

本篇博文主要从概念和应用上介绍XSS,主要内容来源于《白帽子讲web安全》

XSS实际上是一种HTML注入,用户输入的数据被当成HTML的一部分来执行。防御方法核心是输入检查和输出编码。

对于Web应用长见的MVC模式,XSS主要攻击View层。

XSS攻击是在用户的浏览器上执行,形成过程则是服务端页面渲染时,注入了恶意的HTML代码导致。

在ASP.NET MVC中razor默认会对所有输出进行html编码。这是ASP.NET MVC针对XSS攻击的一道防火墙

防御方法

一 HttpOnly设置Cookie, 解决Cookie劫持问题,浏览器将禁止页面javascript访问带有HttpOnly属性的cookie

二 使用输出编码

如使用 HTML 编码一个字符串的含意是什么呢?使用 HTML 编码字符串时,危险字符如 < 和 > 被替换为 HTML 实体,如 &lt; 和 &gt;。所以,当使用 HTML 编码字符串 <script>alert(“Boo!”)</script>时,它将转换为 &lt;script&gt;alert(“Boo!”)&lt;/script&gt;。浏览器在解析编码的字符串时不再执行 JavaScript 脚本。而是显示无害的页面

1 HTML中的变量输出使用HtmlEncode编码

2 在JavaScript的Script中输出,应该确保输出的变量在引号中。防御方法是使用JavaScriptEncode编码

3 在JavaScript事件中输出也是使用JavaScriptEncode编码

4 编码URL

5 处理CSS

三 客户端和服务端双重验证数据

总结:尽量控制用户可控制的变量在 Script HTML标签的Stype以及Css中输出

遵循输入检查的思路,过滤富文本标签,严格不包含事件。在自定义样式的同时需要处理CSS。

考虑到文本样式等问题,需要考虑的因素有 换行标签,空格,硬空格,P标签等。

如果这篇博文对你有帮助,点击推荐支持下吧

 

原文链接:https://www.cnblogs.com/needrunning/p/3312832.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18723

(0)
上一篇 2023年6月2日
下一篇 2023年6月3日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml