一、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攻击组件库的更多相关文章

  1. 认识与防御XSS攻击

    什么是xss攻击? XSS,即(Cross Site Scripting)中文名称为“跨站脚本攻击”.XSS的重点不在于跨站攻击而在于脚本攻击.攻击者可以利用 web应用的漏洞或缺陷之处,向页面注入恶 ...

  2. WEB安全 - 认识与防御XSS攻击

    目录 什么是xss攻击? XSS的危害 XSS攻击分类 xss攻击示例 反射型攻击 - 前端URL参数解析 反射型攻击 - 后端URL参数解析 注入型攻击 - 留言评论 如何规避xss攻击? 总结 什 ...

  3. ASP.NET防御XSS跨站攻击

    目前做ASP.NET项目的时候就有遇到过“用户代码未处理HttpRequestValidationException:从客户端***中检测到有潜在危险的 Request.Form/Request.Qu ...

  4. 防御XSS攻击的七条原则

    本文将会着重介绍防御XSS攻击的一些原则,需要读者对于XSS有所了解,至少知道XSS漏洞的基本原理,如果您对此不是特别清楚,请参考这两篇文章:<Stored and Reflected XSS ...

  5. Jsoup代码解读之六-防御XSS攻击

    Jsoup代码解读之八-防御XSS攻击 防御XSS攻击的一般原理 cleaner是Jsoup的重要功能之一,我们常用它来进行富文本输入中的XSS防御. 我们知道,XSS攻击的一般方式是,通过在页面输入 ...

  6. 拦截过滤防御XSS攻击 -- Struts2.3 以及 2.5 的解决方式

    使用Struts2框架开发的后台在防御XSS攻击的时候很多方式都不能用,因为Struts2对请求进行的二次封装有区别.以下针对Struts2的XSS攻击进行拦截过滤防御解决: Struts2.3 本方 ...

  7. 8. 博客系统| 富文本编辑框和基于bs4模块防御xss攻击

    views.py @login_required def cn_backend(request): article_list = models.Article.objects.filter(user= ...

  8. 防御XSS攻击-encode用户输入内容的重要性

    一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...

  9. 利用HttpOnly来防御xss攻击

    xss的概念就不用多说了,它的危害是极大的,这就意味着一旦你的站点出现xss漏洞,就能够运行随意的js代码,最可怕的是攻击者利用js获取cookie或者session劫持,假设这里面包括了大量敏感信息 ...

随机推荐

  1. vue项目中使用了vw适配方案,引入第三方ui框架mint-ui时,适配问题解决

    问题分析: 一般第三方ui框架用的都是不同的适配方式,如果我们使用了vw适配,那么在使用mint-ui框架时,就会发现px单位会被转换成vw,从而导致样式变小的问题,如图 解决方案 网上看到了很多种解 ...

  2. [PowerShell]template engine

    今天讨论的是如何在Powershell里实现一个简单的Template Engine的功能. 假设模板文件的内容如下:template.tt hello $name welcome $company ...

  3. X星球居民小区的楼房全是一样的...

    每周一题之3 [问题描述] X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下: ...

  4. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_发布者策略控制

    在 读经典——<CLR via C#>(Jeffrey Richter著) 笔记_高级管理控制(配置)中,是由程序集的发布者将程序集的一个新版本发送给管理员,后者安装程序集,并手动编辑应用 ...

  5. hdu6440 Dream 2018CCPC网络赛C 费马小定理+构造

    题目传送门 题目大意: 给定一个素数p,让你重载加法运算和乘法运算,使(m+n)p=mp+np,并且 存在一个小于p的q,使集合{qk|0<k<p,k∈Z} 等于集合{k|0<k&l ...

  6. 8.10zju集训日记

    今天的题目比昨天的简单,一开始自己看了一道题意比较难懂的题目,然后看到榜上有人做出的两道不同的题目,然后马上改变目标,金大佬看的题目是一道比较裸的高斯消元,基本上只要模板正确就可以对,于是很快就开始打 ...

  7. sonar 测试覆盖率

    <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</a ...

  8. @AutoConfigureAfter不生效 @Configration bean的创建顺序

    https://gooroo.io/GoorooTHINK/Article/17466/Lessons-Learned-Writing-Spring-Boot-Auto-Configurations/ ...

  9. formValidation校验

    引用: https://www.cnblogs.com/aliger/p/3898216.html

  10. python 合并重叠数据