注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

转:AntiXss 类库简介  

2013-07-03 13:30:09|  分类: asp.net |  标签: |举报 |字号 订阅

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

编码XML

  1. static void EncodeXML()  
  2.         {  
  3.             string attachedXML = @"<shoppingcart>  
  4.                                       <item date='2013/6/8'>  
  5.                                         <id>1</id>  
  6.                                         <name>book</name>  
  7.                                         <price>80</price>  
  8.                                         <discount>10</discount>  
  9.                                       </item>  
  10.                                       <item date='2013/6/9'>  
  11.                                         <id>1</id>  
  12.                                         <name><attack you!</name>  
  13.                                         <price>&80</price>  
  14.                                         <discount>10</discount>  
  15.                                       </item>  
  16.                                     </shoppingcart>";  
  17.             Regex extractRegex = new Regex(@"<item\s+date=['|""](.+?)['|""]\s*?>\s*<id>(.*?)</id>\s*<name>(.*?)</name>\s*<price>(.*?)</price>\s*<discount>(.*?)</discount>\s*</item>");  
  18.             string xmlNodeFormat = @"<item date='{0}'><id>{1}</id><name>{2}</name><price>{3}</price><discount>{4}</discount></item>";  
  19.             StringBuilder safeXml = new StringBuilder();  
  20.             MatchCollection matches = extractRegex.Matches(attachedXML);  
  21.             safeXml.AppendLine("<shoppingcart>");  
  22.             foreach (Match item in matches)  
  23.             {  
  24.                 safeXml.AppendLine(string.Format(xmlNodeFormat, AntiXssLibrary.Encoder.XmlEncode(item.Groups[1].Value)  
  25.                                                   , AntiXssLibrary.Encoder.XmlEncode(item.Groups[2].Value)  
  26.                                                   , AntiXssLibrary.Encoder.XmlEncode(item.Groups[3].Value)  
  27.                                                   , AntiXssLibrary.Encoder.XmlEncode(item.Groups[4].Value)  
  28.                                                   , AntiXssLibrary.Encoder.XmlEncode(item.Groups[5].Value)));  
  29.             }  
  30.             safeXml.AppendLine("</shoppingcart>");  
  31.             Console.WriteLine("unsafe xml:\n" + attachedXML);  
  32.             Console.WriteLine("safe xml:\n" + safeXml);  
  33.   
  34.             /*OUT PUT 
  35.              <shoppingcart> 
  36.               <item date='2013/6/8'> 
  37.                 <id>1</id> 
  38.                 <name>book</name> 
  39.                 <price>80</price> 
  40.                 <discount>10</discount> 
  41.               </item> 
  42.               <item date='2013/6/9'> 
  43.                 <id>1</id> 
  44.                 <name><attack you!</name> 
  45.                 <price>&80</price> 
  46.                 <discount>10</discount> 
  47.               </item> 
  48.             </shoppingcart> 
  49.              */  
  50.   
  51.         }  


常见的注入类型攻击

XML注入

Xss 攻击

Ldap注入

 

AntiXssLibrary下载

 转自:http://blog.csdn.net/ghostbear/article/details/8849860

  评论这张
 
阅读(419)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017