如何在Java中验证XSS Attcaks的Soap Web服务请求参数

时间:2019-06-14 08:57:46

标签: java security soap xss soap-client

如何从客户端站点脚本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>

如果通过将恶意数据作为请求参数的一部分而受到黑客的攻击,那么我需要处理它并出错,或者不允许处理数据。

2 个答案:

答案 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方法或类似的方法。