哪个更好?在应用程序中拥有类文件或从Web服务获取数据?

时间:2016-11-23 12:44:36

标签: c# asp.net web-services stored-procedures

我最近接手了一个部分完成的项目。在那个项目中,他正在使用Web服务来获取从数据库中获取每个数据的所有内容。

Ex:我需要一些带3个参数的数据(区号,taluk代码和乡村代码)

发生的事情是:

  1. 使用这三个参数创建xml文档
  2. 加密此xml
  3. 将此XML发送到Web服务
  4. 在Web服务中解密此XML
  5. 使用上述参数通过存储过程检索数据
  6. 再次为检索到的数据生成xml文档。
  7. 再次加密此XML并将此XML返回给应用程序
  8. 解密返回的XML并使用此XML生成数据表。
  9. 我问他为什么要做这一切?他出于安全目的说。

    我觉得这是非常冗长和耗时的,我学到的存储过程是它保护应用程序。 我的问题是,当我可以拥有一个类文件并在我的应用程序中使用存储过程时,为什么我需要完成所有这些过程?

    使用存储过程是否足以保护我的应用程序? 或者我应该继续他的技术?(坦率地说,我不同意这种方法)

    注意:用户不传递参数。一旦用户登录,它将在会话中。

2 个答案:

答案 0 :(得分:0)

除非客户端代码完全位于浏览器端,否则您的配合似乎已经创建了一个过度引擎的解决方案。实际上,如果您正在开发一个完整的HTML5应用程序,那么您将通过Web服务创建一个完整的HTTP接口,或者应该通过多种客户端技术访问相同的后端。

安全层既可以在请求到达Web服务资源之前实现,也可以在分层软件系统中作为常规问题实现。

可以对加密进行特别说明。如果我们通过HTTP讨论Web服务,则不必加密请求体,因为它可以使用标准SSL / HTTPS在传输级别完成。

最后,关于XML的事情,我猜你正在使用SOAP服务。也许你的伙伴很久以前就开始了他的项目,或者,如果我们谈论一个针对Web服务的网站,并且他在过去的5 - 6年里实施了一个SOAP / XML服务,他应该重新考虑使用关于配置方法的约定,如REST ......

答案 1 :(得分:0)

dual firewall配置中的大规模安全Web应用程序中,这种分离并不罕见。

如果Web应用程序只是直接调用存储过程,则必须在Web网络区域和数据库网络区域之间打开端口1433(或其他ODBC端口)。这会产生一些曝光,因为Web服务器位于DMZ中,而数据库服务器往往位于更安全的区域。一般来说,您希望保持尽可能多的端口密封,以便在妥协的情况下保持DMZ。

很遗憾,你的同事编写了自己的解决方案,因为听起来大多数功能都会被SQLXML覆盖。