java安全编码指南之:输入注入injection( 二 )
一般来说 , 我们在解析XML的过程中 , 如果发现有重复的tag , 那么后面的tag会覆盖前面的tag 。
结果就是1个iphone20现在的价格是20块 , 非常划算 。
XML注入的java代码我们看下XML的注入在java代码中是怎么实现的:
public String createXMLInjection(String quantity){String xmlString = "
可以看到我们直接使用用户输入的quantity作为XML的拼接 , 这样做很明显是有问题的 。
怎么解决呢?有两种方法 。
- 第一种方法
public String createXML(String quantity){int count = Integer.parseUnsignedInt(quantity);String xmlString = "- \n
Iphone20 \n"+ "5000.0\n" + "" + count+ " ";return xmlString;}
上面代码中 , 我们对quantity进行了Integer的转换 , 从而避免了用户的非法输入 。- 第二种方法
先看一下我们改怎么定义这个XML Schema:
上面我们定义了一个XML element的序列sequence 。 如果用户输入了非定义格式的其他XML , 就会报错 。我们看下相对应的java代码该怎么写:
StreamSource ss = new StreamSource(new File("schema.xsd"));Schema schema = sf.newSchema(ss);SAXParserFactory spf = SAXParserFactory.newInstance();spf.setSchema(schema);SAXParser saxParser = spf.newSAXParser();XMLreader reader = saxParser.getXMLReader();reader.setContentHandler(defHandler);reader.parse(xmlStream);
上面我们列出了XML验证的代码 , 完整的代码可以参考文末的代码链接 , 这里就不一一贴出来了 。本文的代码:
learn-java-base-9-to-20/tree/master/security
本文已收录于
最通俗的解读 , 最深刻的干货 , 最简洁的教程 , 众多你不知道的小技巧等你来发现!
【java安全编码指南之:输入注入injection】欢迎关注我的公众号:「程序那些事」,懂技术 , 更懂你!
- iOS|恒创科技:Linux日本云服务器安全设置的基本步骤
- javascript|手机移动端的PyTorch来了,还支持JavaScript
- mp4|Web前端培训:学习JavaScript重要知识点有哪些?
- 新疆维吾尔自治区|Java程序员应该知道的20个有用的库
- javascript|三星Galaxy S21+降2890,为什么依然卖不动?
- iphone6|C++为什么比不上Java?
- javascript|这样一个带C口的显示器你会喜欢吗?
- 阿里巴巴|Java培训:7个简单的Java性能调优技巧
- 新财网|WitAwards 2021 | 数字认证密码云服务平台喜获“年度热门安全产品与服务”
- 私有云|历经3个月体验绿联私有云,终于让我对安全隐私放下心来