Performance Web服务增加了安全性并降低了性能?

Performance Web服务增加了安全性并降低了性能?,performance,web-services,Performance,Web Services,我的WinFroms应用程序使用tableadapters和DataReader从SQL server获取数据 出于安全考虑,我正在考虑用web服务取代datareaders。 我想其中一个缺点就是执行速度 这是真的吗?或者…Web服务在执行速度方面肯定会有更高的开销,这纯粹是因为在典型的SOAP实现中,您带回的数据将被包装在XML中。因此,您将下载更多原始信息,然后要求应用程序将其解析为正确的类型 我不确定您打算如何使用web服务来改善您的安全状况。请记住,这些服务需要在某个地方生存,并且您的

我的WinFroms应用程序使用tableadapters和DataReader从SQL server获取数据

出于安全考虑,我正在考虑用web服务取代datareaders。 我想其中一个缺点就是执行速度


这是真的吗?或者…

Web服务在执行速度方面肯定会有更高的开销,这纯粹是因为在典型的SOAP实现中,您带回的数据将被包装在XML中。因此,您将下载更多原始信息,然后要求应用程序将其解析为正确的类型


我不确定您打算如何使用web服务来改善您的安全状况。请记住,这些服务需要在某个地方生存,并且您的客户端应用程序需要能够到达该位置。

Web服务在执行速度方面肯定有更高的开销-纯粹是因为在典型的SOAP实现中,您带回的数据将用XML包装。因此,您将下载更多原始信息,然后要求应用程序将其解析为正确的类型


我不确定您打算如何使用web服务来改善您的安全状况。请记住,这些服务需要在某个地方运行,并且您的客户端应用程序需要能够访问该位置。

使用
netcpbinding
netNamedPipesBinding
,性能差别不会太大。这些绑定分别通过TCP/IP或命名管道使用二进制编码

是的,您将获得更好的安全性,因为您不会直接从每个客户端连接到SQL Server


你甚至有机会提高绩效。如果您碰巧对数据库进行了一些小的调用,那么将它们合并到一个更大的WCF调用中实际上可以提高性能。

使用
netcpbinding
netNamedPipesBinding
,性能差别不会太大。这些绑定分别通过TCP/IP或命名管道使用二进制编码

是的,您将获得更好的安全性,因为您不会直接从每个客户端连接到SQL Server


你甚至有机会提高绩效。如果您碰巧对数据库进行了一些小的调用,那么将它们整合到一个更大的WCF调用中实际上可以提高性能。

现在应用程序的安全性肯定取决于您如何连接到MS SQL DB。当客户使用应用程序时,您是否对其进行身份验证?我已经看到很多实例,其中用户登录实际上是SQL登录,这就是提供安全性的原因,并且可以非常自然地基于这些登录在数据库中进行数据分割

如果您只有一个登录,我希望不是SA,那么为应用程序的所有用户连接,那么使用单独的数据访问层听起来是一个明智的设计选择。您显然正在考虑Web服务这一层,但您也可以考虑其他选项。也许这些问题会有所帮助


毫无疑问,应用程序现在的安全性取决于您如何连接到MS SQL DB。当客户使用应用程序时,您是否对其进行身份验证?我已经看到很多实例,其中用户登录实际上是SQL登录,这就是提供安全性的原因,并且可以非常自然地基于这些登录在数据库中进行数据分割

如果您只有一个登录,我希望不是SA,那么为应用程序的所有用户连接,那么使用单独的数据访问层听起来是一个明智的设计选择。您显然正在考虑Web服务这一层,但您也可以考虑其他选项。也许这些问题会有所帮助


是的,您将获得更好的安全性-添加层总是有帮助的,特别是如果您随后采取措施保护每一层。例如,如果只允许访问web服务,并且只允许从web服务器访问sql server,那么就减少了黑客攻击sql server的目标区域

当然,现在你的处境是,他们需要入侵你的web服务器,才能访问sql服务器。如果您通过将web服务代码放入服务中并仅允许其访问sql server来进一步减少面积,那么您做得更好了—web服务代码仅充当中间层服务的包装器;现在,他们需要黑客攻击web服务器,该服务器只允许他们访问该服务,而该服务器将包含您的专有接口,这些接口应该更难被黑客攻击(假设黑客使用已知的安全漏洞攻击您的web和sql服务器,例如0天攻击)

我知道有几个地方对安全性(主要是财务方面)心存疑虑,这里的web服务器被认为是一种安全风险,因此在那里很少运行—它作为表示层的一部分,只将数据传递给安全服务,而安全服务反过来管理到数据层的安全连接

请参阅罗杰会话的介绍


至于速度。。现在的服务器速度非常快,你可以获取一个对象,将其转换为SOAP,通过HTTP发布,解析它,将其解压回一个对象,并调用你一直想要的方法,而不会有太多明显的延迟。当然要慢一些,但是如果你能扩展它,使它足够快,那么现在谁在乎呢?

是的,你会得到更好的安全性-添加层总是有帮助的,特别是如果你采取措施保护每一层。例如,如果只允许访问web服务,并且只允许从web服务器访问sql server,那么就减少了黑客攻击sql server的目标区域

当然,现在你的处境是,他们需要入侵你的web服务器,才能访问sql服务器。如果您通过放置web服务来进一步减少面积