微软AntiXSS防止xss攻击类库

AntiXSS,由微软推出的用于防止XSS攻击的一个类库,可实现输入白名单机制和输出转义。

AntiXSS最新版的下载地址:http://wpl.codeplex.com

下载安装之后,安装目录下有以下文件:
AntiXSS.chm:

包括类库的操作手册参数说明。

AntiXSSLibrary.dll:

包含Antixss,Encoder类(输出转义),AntiXSS类中的方法已经过时,建议使用Encoder类中相同的方法。
HtmlSanitizationLibrary.dll:

包含Sanitizer类(输入白名单),只包含GetSafeString和GetSafeHtmlFragment两个方法。

使用时在工程内添加引用HtmlSanitizationLibrary.dll 和AntiXSSLibrary.dll
导入命名空间using Microsoft.Security.Application;

我们需要决定使用哪个编码函数。接下来的表格将帮助你决定使用哪个编码函数:


编码函数


应该使用的场景


示例/模式


HtmlEncode


不可信的输入被用作html输出,被分配给一个html属性除外


<a href="http://www.contoso.com">Click Here [Untrusted input]</a>


HtmlAttributeEncode


不可信的输入作为一个html属性


<hr noshade size=[Untrusted input]>


JavaScriptEncode


不可信的输入作为一个javascript上下文


<script type="text/javascript">

[Untrusted input]

</script>


UrlEncode


不可信的输入作为一个url(例如作为一个查询参数的值)


<a href="http://search.msn.com/results.aspx?

q=[Untrusted-input]">Click Here!</a>


VisualBasicScriptEncode


不可信的输入作为一个visual basic上下文


<script type="text/vbscript" language="vbscript">

[Untrusted input]

</script>


XmlEncode


不可信的输入作为一个xml输出,除了把它作为一个xml节点的属性


<xml_tag>[Untrusted input]</xml_tag>


XmlAttributeEncode


不可信的输入作为一个xml的属性


<xml_tag attribute=[Untrusted input]>Some Text</xml_tag>

在将 HTML 数据保存到数据库之前,使用 AntiXSS Sanitizer 对象(该库是一个单独的下载文件,将在下文中介绍)调用
GetSafeHtml 或 GetSafeHtmlFragment;不要在保存数据之前对数据进行编码。AntiXss.GetSafeHtmlFragment(html)方法,这个方法会替换掉html里的危险字符。 确保所有输出内容都经过
HTML 编码。

AntiXss类库是一款预防注入攻击的开源类库,它通过白名单机制进行内容编码。目前它支持这些输入类型:XML,HTML,QueryString,HTMLFormURLEncode,Ldap,JavaScript。在日常的开发中我们并不会安全编码像Ldap或JavaScript这样的输入类型,大多都是对XML,QueryString或Form
URL进行安全编码。下面是个安全编码XML文件的小例子:

原文地址:https://www.cnblogs.com/l1pe1/p/8440946.html

时间: 2024-08-24 09:42:02

微软AntiXSS防止xss攻击类库的相关文章

AntiXSS - 支持Html同时防止XSS攻击

AntiXSS - 支持Html同时防止XSS攻击 跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头.最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode). 但是如果想用户输入支持一些格式,怎么办?一种办法就是很多论坛采用的BB Code的方法.使用特定的标签代替一些格式.比如:[B]表示粗体,等等.但是,BB Code这种形式并不被广泛接受,它的表现力实在太差了,而且并不是标准格式. 为了让用户的输入更具表现力,涌现了大量

WEB安全实战(三)XSS 攻击的防御

前言 上篇文章中提到了 XSS 攻击,而且,也从几个方面介绍了 XSS 攻击带来的严重影响.那么,这篇文章中,主要是针对 XSS 攻击做一个基本的防御,看看可以通过几种方式来修复这个特别常见的安全漏洞. 由于公司用的是 SpringMVC,因此,这次就主要基于 SpringMVC 来解决这些漏洞.当然,其实这些解决方案都是大同小异,对于什么环境来说根本无所谓.了解了原理,什么环境.什么语言都可以运用自如了.废话就不多说了,直接上解决方案. 解决方案 方案一 方案一主要是利用了 SpringMVC

[转]常用Html辅助方法对XSS攻击的抵抗力

ASP.NET & jQuery注意小细节来防止XSS攻击 前言 在开发网站时最害怕的莫过于开发人员写出了一个具有被攻击性的网站,而其实很多开发人员如果一不注意就会踏进了 Cross-Site Scripting(XSS)的地狱,解决方法很简单但却也很容易踏进去,以小弟来说就也曾经跳进去很多次,尤其式透过 jQuery 在操作动态网页时很容易没想清楚就用错方法导致 XSS 错误发生,所以这边笔者整理了几种在撰写上的技巧来跟大家分享如何防止XSS攻击. XSS 指令码攻击 我们先看下底下这个画面,

Cookie中设置了&quot;HttpOnly&quot;属性,有效的防止XSS攻击

1.什么是HttpOnly? 如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie. XSS全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段H

BBS(仿博客园系统)项目05(后台管理功能实现:文章添加、富文本编辑器使用、xss攻击、BeautifulSoup4模块、富文本编辑器上传图片、修改头像)

摘要 布局框架搭建 随笔添加 后台管理富文本编辑器KindEditor xss攻击 文章简介的截取,BeautifulSoup4模块 富文本编辑器上传图片 头像修改 一.后台管理框架布局搭建 后台管理布局框架分析:导航条.左侧功能区.右侧主要功能显示和实现区 实现: 导航条:使用bootstrap模板:JavaScript>>导航条 左侧:使用bootstrap模板:组件>>列表组 右侧:使用bootstrap模板:JavaScript>>标签页 新建后台管理路由(注意

PHP防御XSS攻击的终极解决方案

最近测试XSS攻击修复时,找到的一个比较不错的文章,分享给大家. Update20151202: 感谢大家的关注和回答,目前我从各种方式了解到的防御方法,整理如下: PHP直接输出html的,可以采用以下的方法进行过滤: 1 1.htmlspecialchars函数 2   3 2.htmlentities函数 4   5 3.HTMLPurifier.auto.php插件 6   7 4.RemoveXss函数(百度可以查到) PHP输出到JS代码中,或者开发Json API的,则需要前端在J

SQL 注入、XSS 攻击、CSRF 攻击

SQL 注入.XSS 攻击.CSRF 攻击 SQL 注入 什么是 SQL 注入 SQL 注入,顾名思义就是通过注入 SQL 命令来进行攻击,更确切地说攻击者把 SQL 命令插入到 web 表单或请求参数的查询字符串里面提交给服务器,从而让服务器执行编写的恶意的 SQL 命令. 对于 web 开发者来说,SQL 注入已然是非常熟悉的,而且 SQL 注入已经生存了 10 多年,目前已经有很成熟的防范方法,所以目前的 web 应用都很少会存在漏洞允许进行 SQL 注入攻击. 除非是入门开发人员,在开发

超强XSS攻击利器

======================================================================= BackTrack 5 R1 XSS研究之XSSer(超强XSS攻击利器)使用说明中文版 XSSer使用说明 ================================================================ 简介: ======================================================

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

Jsoup代码解读之八-防御XSS攻击 防御XSS攻击的一般原理 cleaner是Jsoup的重要功能之一,我们常用它来进行富文本输入中的XSS防御. 我们知道,XSS攻击的一般方式是,通过在页面输入中嵌入一段恶意脚本,对输出时的DOM结构进行修改,从而达到执行这段脚本的目的.对于纯文本输入,过滤/转义HTML特殊字符<,>,",'是行之有效的办法,但是如果本身用户输入的就是一段HTML文本(例如博客文章),这种方式就不太有效了.这个时候,就是Jsoup大显身手的时候了. 在前面,我