【问题标题】:How to validate soap webservice request parameters for XSS attcaks in java如何在java中验证XSS攻击的soap Web服务请求参数
【发布时间】:2019-06-14 08:57:46
【问题描述】:

如何保护我的 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>

如果黑客通过将恶意数据作为请求参数的一部分进行了任何攻击,那么我需要处理它并通过错误或不允许处理数据。

【问题讨论】:

  • 您好,您能否标记答案是否对您有用。请感谢大家花时间回复您的问题。

标签: java security soap xss soap-client


【解决方案1】:

解决方案是,您必须编写一个 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

【讨论】:

  • 如果我只有一个为 xml 文件定义了不同 complextType 元素的 xsd 文件,我该怎么做?基本上,如果有 10 个或更多 xml 文件,则所有可选数据都在单个 xsd 文件中处理。那么像上面那样进行验证是不可行的吗?请让我知道是否有其他方法可以做到这一点,纠正我我错了
  • 我相信您需要为每个 xml 文件编写不同的 xsd 文件。我想这就是标准。
【解决方案2】:

你能不能不使用 Java 中的 Encode 方法来解决这个问题。我确信 Java 有一个 Encode 方法或类似的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2017-04-02
    • 2013-01-27
    相关资源
    最近更新 更多