java 如何针对 XSS 攻击验证 soap web 服务请求参数
How to validate soap webservice request parameters for XSS attcaks in java
如何保护我的 api 免受客户端站点脚本攻击或 XSS 攻击?
我们有一个被许多客户端访问的 soap 端点,传入的请求数据将被验证其正确性和安全性。
传入请求有可能包含 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>
如果黑客通过将恶意数据作为请求参数的一部分进行任何攻击,那么我需要处理它并通过错误或不允许处理数据。
解决方案是,您必须编写一个 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。
能不能不用Java中的Encode方法来解决这个问题。我确定 Java 有编码方法或类似的东西。
如何保护我的 api 免受客户端站点脚本攻击或 XSS 攻击?
我们有一个被许多客户端访问的 soap 端点,传入的请求数据将被验证其正确性和安全性。
传入请求有可能包含 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>
如果黑客通过将恶意数据作为请求参数的一部分进行任何攻击,那么我需要处理它并通过错误或不允许处理数据。
解决方案是,您必须编写一个 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。
能不能不用Java中的Encode方法来解决这个问题。我确定 Java 有编码方法或类似的东西。