AntiXss 类库简介

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

编码XML

static void EncodeXML()
        {
            string attachedXML = @"<shoppingcart>
                                      <item date='2013/6/8'>
                                        <id>1</id>
                                        <name>book</name>
                                        <price>80</price>
                                        <discount>10</discount>
                                      </item>
                                      <item date='2013/6/9'>
                                        <id>1</id>
                                        <name><attack you!</name>
                                        <price>&80</price>
                                        <discount>10</discount>
                                      </item>
                                    </shoppingcart>";
            Regex extractRegex = new Regex(@"<item\s+date=['|""](.+?)['|""]\s*?>\s*<id>(.*?)</id>\s*<name>(.*?)</name>\s*<price>(.*?)</price>\s*<discount>(.*?)</discount>\s*</item>");
            string xmlNodeFormat = @"<item date='{0}'><id>{1}</id><name>{2}</name><price>{3}</price><discount>{4}</discount></item>";
            StringBuilder safeXml = new StringBuilder();
            MatchCollection matches = extractRegex.Matches(attachedXML);
            safeXml.AppendLine("<shoppingcart>");
            foreach (Match item in matches)
            {
                safeXml.AppendLine(string.Format(xmlNodeFormat, AntiXssLibrary.Encoder.XmlEncode(item.Groups[1].Value)
                                                  , AntiXssLibrary.Encoder.XmlEncode(item.Groups[2].Value)
                                                  , AntiXssLibrary.Encoder.XmlEncode(item.Groups[3].Value)
                                                  , AntiXssLibrary.Encoder.XmlEncode(item.Groups[4].Value)
                                                  , AntiXssLibrary.Encoder.XmlEncode(item.Groups[5].Value)));
            }
            safeXml.AppendLine("</shoppingcart>");
            Console.WriteLine("unsafe xml:\n" + attachedXML);
            Console.WriteLine("safe xml:\n" + safeXml);

            /*OUT PUT
             <shoppingcart>
              <item date='2013/6/8'>
                <id>1</id>
                <name>book</name>
                <price>80</price>
                <discount>10</discount>
              </item>
              <item date='2013/6/9'>
                <id>1</id>
                <name><attack you!</name>
                <price>&80</price>
                <discount>10</discount>
              </item>
            </shoppingcart>
             */

        }


常见的注入类型攻击

XML注入

Xss 攻击

Ldap注入

 

AntiXssLibrary下载

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值