Asp.net防御XSS攻击组件库
一、AntiXss
翻看mvc4高级编程,偶看到作者强烈推荐使用AntiXss防御XSS攻击,收集资料看下。
目前类库已融入到.netframework中,类库主页不再更新。
使用方法:使用Nuget,搜索AntiXss

在项目中添加命名空间引用:using Microsoft.Security.Application;
示例代码:
string xssstr="<script>alert(0);</script>,;<insert into table";
string encodedstr= Encoder.HtmlEncode(xssstr, false); string safestr = Sanitizer.GetSafeHtml(xssstr);
string safestrfrag = Sanitizer.GetSafeHtml(xssstr);
encodedstr = Encoder.HtmlEncode(xssstr, false);
代码运行后,会过滤敏感字符进行转义操作。
使用Sanitizer.GetSafeHtml()会得到过滤过敏感字符的html字符串结果。
参考资料:
博客园榨菜小生文章
csdnVinoYang专栏文章
二、HtmlSanitizer
VS中使用Nuget控制台安装。

HtmlSanitizer依赖AngleShart库
public ISet<string> AllowedAttributes { get; }
public ISet<string> AllowedCssProperties { get; }
public ISet<string> AllowedSchemes { get; }
public ISet<string> AllowedTags { get; }
通过上述属性可以查看Allowed标签信息。
HtmlSanitizer可以添加白名单到标签中,类库简单使用示例如下:
//初始化对象
HtmlSanitizer htmlSanitizer = new HtmlSanitizer();
StringBuilder alltag = new StringBuilder();
foreach (var item in htmlSanitizer.AllowedTags)
{
alltag.Append(item + "\r\n");
} //获得AllowedTags
string allTagsstr = alltag.ToString(); //过滤操作
string filterstr = htmlSanitizer.Sanitize(xssstr);
//添加script到白名单中
htmlSanitizer.AllowedTags.Add("script");
//查看过滤后的结果
filterstr = htmlSanitizer.Sanitize(xssstr);
HtmlSanitizer以标签为基础单进行过滤,上例中script设置白名单后alert不会被过滤。
Asp.net防御XSS攻击组件库的更多相关文章
- 认识与防御XSS攻击
什么是xss攻击? XSS,即(Cross Site Scripting)中文名称为“跨站脚本攻击”.XSS的重点不在于跨站攻击而在于脚本攻击.攻击者可以利用 web应用的漏洞或缺陷之处,向页面注入恶 ...
- WEB安全 - 认识与防御XSS攻击
目录 什么是xss攻击? XSS的危害 XSS攻击分类 xss攻击示例 反射型攻击 - 前端URL参数解析 反射型攻击 - 后端URL参数解析 注入型攻击 - 留言评论 如何规避xss攻击? 总结 什 ...
- ASP.NET防御XSS跨站攻击
目前做ASP.NET项目的时候就有遇到过“用户代码未处理HttpRequestValidationException:从客户端***中检测到有潜在危险的 Request.Form/Request.Qu ...
- 防御XSS攻击的七条原则
本文将会着重介绍防御XSS攻击的一些原则,需要读者对于XSS有所了解,至少知道XSS漏洞的基本原理,如果您对此不是特别清楚,请参考这两篇文章:<Stored and Reflected XSS ...
- Jsoup代码解读之六-防御XSS攻击
Jsoup代码解读之八-防御XSS攻击 防御XSS攻击的一般原理 cleaner是Jsoup的重要功能之一,我们常用它来进行富文本输入中的XSS防御. 我们知道,XSS攻击的一般方式是,通过在页面输入 ...
- 拦截过滤防御XSS攻击 -- Struts2.3 以及 2.5 的解决方式
使用Struts2框架开发的后台在防御XSS攻击的时候很多方式都不能用,因为Struts2对请求进行的二次封装有区别.以下针对Struts2的XSS攻击进行拦截过滤防御解决: Struts2.3 本方 ...
- 8. 博客系统| 富文本编辑框和基于bs4模块防御xss攻击
views.py @login_required def cn_backend(request): article_list = models.Article.objects.filter(user= ...
- 防御XSS攻击-encode用户输入内容的重要性
一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...
- 利用HttpOnly来防御xss攻击
xss的概念就不用多说了,它的危害是极大的,这就意味着一旦你的站点出现xss漏洞,就能够运行随意的js代码,最可怕的是攻击者利用js获取cookie或者session劫持,假设这里面包括了大量敏感信息 ...
随机推荐
- 第k大数(前k大数)
题目:设计一组N个数,确定其中第k个最大值 1,普通方法(先排序,然后遍历,得到第k大的数) 注:如果是数组,直接arr[k],我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总 ...
- C语言初步学习I/O函数scanf、getchar、printf和putchar
scanf().printf().getchar()和putchar()这四个函数能够让用户和程序交流,所以被称为输入/输出函数,或简称为I/O函数. 这里先结合缓冲输入来讲讲scanf()和getc ...
- kibana启动调试
在windows的命令行窗口中,将路径制定到kibana的源代码bin目录中,然后执行 kibana.bat --dev --no-base-path 需要注意的是kibana.yml中的配置文件需要 ...
- css过渡transition
定义 过渡transition是一个复合属性,包括transition-property.transition-duration.transition-timing-function.transiti ...
- NFS网络储存系统
为什么用NFS网络文件存储系统? 1)实现数据信息统一一致 2)节省局域网数据同步传输的带宽 3)节省网站架构中服务器硬盘资源 NFS系统存储原理介绍 RPC服务类似一个中介服务,NFS服务端与NFS ...
- windows logstash配置
E:\logstash-6.2.4\bin目录下新建logstash.conf input { stdin { } } output { stdout { codec=> rubydebug } ...
- css3 box-shadow 用法
第1个值水平偏移值 第2个值垂直偏移值 第3个值设置对象的阴影模糊值 第4个值设置对象的阴影外延值 外阴影常规效果box-shadow:5px 5px rgba(0,0,0,.6); 外阴影模糊效果b ...
- 读书笔记 - 《毛X东传》
这个书名重复太多,这本的作者是迪克威尔逊.这本书很有意思,可以看出是一个局外人根据残缺不全的资料所写的出来的,而且是结合心理分析的手法主要描述政治历程.总体来说作为传记不够全面,但对于一个中国人来说可 ...
- 技巧:Python中print打印信息的同时打印文件、行号
import sys def Log(msg): print('Print Message: '+msg+' ,File: "'+__file__+'", Line '+str(s ...
- win10 网络连接怎么删除不再使用的连接
# 打开网络共享中心->更改适配器设置->右击->选择属性->选择配置->选择驱动程序->卸载