如何安全地将SOAP响应存储在数据库中?

时间:2014-05-25 04:11:26

标签: java security spring-mvc soap spring-security

我正在开发一个内部工具,模拟我们产品使用的不同Web服务的SOAP响应。这适用于本地开发。

我们的想法是将SOAP响应作为blob数据存储在数据库中。在将URL密钥映射到响应期间,URL密钥和预期的SOAP响应将存储到数据库中。模拟的SOAP响应将作为POST请求中的字符串主体。

SOAP响应将与URL密钥一起存储在数据库中。如果URL为/configureresponse/{responsetype}/{responsecode}/,则响应类型和响应代码的值将作为字符串与SOAP响应一起保存到数据库中。

我正在构建一个Spring MVC应用程序。代码段如下所示

@Controller
@RequestMapping(value = "/configureresponse/{responsetype}/{responsecode}",
                method = RequestMethod.POST)
public ModelAndView configureResponse(
        @PathVariable String responseType, @PathVariable String responseCode,
        @RequestBody String soapResponse) {

}
  1. 如何根据特定条件返回Servlet响应,例如200 OK或403 Forbidden?

  2. 有没有办法保护传入的XML响应和传出的XML响应?这是一个内部工具,但我不确定如何处理XML注入或任何其他安全问题。

  3. 更新:如何保护应用程序免受十亿次笑声攻击或使其更安全?

    1. 我应该检查XSRF漏洞吗?如果是,我该怎么做?

    2. 如何处理同一响应和请求的同步并发输入?

    3. UPDATE :如何判断一个线程是否正在更新给定响应类型和响应代码的响应,而另一个线程正在查看给定响应类型和响应代码的响应?

1 个答案:

答案 0 :(得分:1)

  
      
  1. 如何根据特定条件返回Servlet响应,例如200 OK或403 Forbidden?
  2.   

有几种方法可以做到这一点。例如,您可以将返回类型更改为ResponseEntity<String>,其中包含一个接受HttpStatus的构造函数。或者,您可以简单地传入HttpServletResponse并在那里设置响应代码。了解Spring,可能有20种更有效的方法可以做到这一点。我建议阅读他们网站上提供的优秀参考指南。

  
      
  1. 有没有办法保护传入的XML响应和传出的XML响应?这是一个内部工具,但我不确定如何处理XML注入或任何其他安全问题。
  2.   

不确定你的意思&#34;安全&#34;。如果您的意思是传输,那么使用SSL。如果您的意思是授权/身份验证使用Spring Security。如果你的意思是别的,那么我不知道要提供什么,只是说我需要更好地解释你想要什么/需要什么。

  
      
  1. 我应该检查XSRF漏洞吗?如果是的话,我该怎么做?欢迎任何链接或教程。
  2.   

安全应该是一个问题,无论是内部应用程序还是外部应用程序。现在大多数黑客都是通过社交工程进入公司的内部网络来完成的。以最近的Target违规行为为例。我相信他们使用AC维修服务进入大楼。我曾经去过一个Schmoocon谈话,一个人雇用来测试公司&#39;安全实际上得到了一个看门人的工作,并插入他建立的Linux设备,拖地一些楼层,然后拿起扫描所有内部网络的设备。所以,是的,如果你认为你应该防范攻击,那么我会说这样做。

  
      
  1. 如何处理同一响应和请求的同步并发输入?
  2.   

不确定你的意思。 Spring MVC通常使用session来隔离请求。如果两个不同的用户请求相同的东西,他们是同一件事的两个不同的请求。我建议使用一些缓存,这样你每次都不会点击你的数据库,但除此之外我没有看到任何问题。