如何从客户端站点脚本attcaks或XSS attcaks保护我的api?
我们有一个肥皂端点,许多客户端可以访问该端点,传入的请求数据将被验证正确性和安全性。
传入的请求有可能具有DOM对象模型或任何破坏应用程序的可疑数据。
如下所示,
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.abcxyz.com/aaa/bbb" xmlns:ws="http://www.abcxyz.com/aaa/bbb">
<soapenv:Header>
**<cus:id>
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
</cus:id>**
</soapenv:Header>
<soapenv:Body>
<cus:cancelRequest>
<!--Optional:-->
<ws:transactionId>10000</ws:transactionId>
<ws:systemId>CCC</ws:systemId>
<ws:userId>USER_NAME</ws:userId>
<cus:cancelElements>
<cus:elementType>NAME</cus:elementType>
<cus:elementId>AB123</cus:elementId>
</cus:cancelElements>
</cus:cancelRequest>
</soapenv:Body>
</soapenv:Envelope>
如果通过将恶意数据作为请求参数的一部分而受到黑客的攻击,那么我需要处理它并出错,或者不允许处理数据。
答案 0 :(得分:0)
为此的解决方案是,您必须编写一个XSD(架构定义)文件,并且该XSD应该能够针对上述xml文件中的元素进行验证。
答案:您必须导入软件包 import javax.xml。*; 。这样您就可以针对xsd验证xml文件。
例如:Employee.xsd EployeeRequest.xml
Employee.xsd
<simpleType name="Imei">
<annotation>
<documentation>A string representing the IMEI number. An IMEI will be of 15 digit.</documentation>
</annotation>
<restriction base="string">
<pattern value="\d{15}"/>
</restriction>
validateXMLSchema("Employee.xsd", "EmployeeRequest.xml"));
有关参考,请点击here。
答案 1 :(得分:0)
您是否可以使用Java中的Encode方法来解决此问题?我确定Java有一个Encode方法或类似的方法。