使用JQuery调用Web服务时可能存在哪些威胁?如何避免这些威胁?

Far*_*hid 10 asp.net security jquery updatepanel web-services

我知道这个问题可能过于通用,但为了缩小问题,这里有一个简短的描述:

我打算忘记ASP.net UpdatePanel并通过JQuery使用ajax.我担心由于JavaScript的简单客户端性质(以及JQuery代码),任何看我的网页源代码的人都可以意识到我正在调用的Web服务的URL是什么以及传递的是什么那些网络服务.

UpdatePanel用于这些类型的操作时,我确信调用Web服务是在服务器端完成的,我不关心调用敏感Web服务公开公开的信息问题,但现在我计划通过Ajax JQuery,它让我很担心.

我的担忧是否合理,如果是真的,那么避免网络服务呼叫信息威胁的最佳解决方案是什么?

澄清:在谈到UpdatePanel时,我的意思是利用一系列技术,包括ASP.net AJAX,代码隐藏和依赖服务器端Dll来执行异步服务器端操作而不是jquery Ajax,这需要Web服务来与服务器进行交互.

Dev*_*esh 6

互联网无法通过隐藏URL来始终保护您的Web服务.我不确定当你说你的updatepanel从服务器调用web服务时你没有采用AJAX的真正威力.

保护Web服务的一种方法是在Web服务端使用身份验证.例如,每次访问源时都需要发送一些身份验证密钥,这很常见,你有很多公共Web服务使用auth密钥(如OpenId实现)自我保护.如果您不想更改Web服务逻辑,我认为AJAX的jquery方式不是一个安全的选项.

这是一个想法,你可以有两个级别的web服务,一个将打开你可以在jquery中使用的所有.从当前的Web服务,从服务器端调用其他安全的Web服务.即使是现在,您也可以配置某些特定计算机IP的传入请求.

在这种情况下,除了您自己的服务器之外,没有其他人可以访问安全地保留在防火墙后面的Web服务.这与从应用程序服务器连接到数据库服务器时的操作类似.

如果这有帮助,请告诉我.


rya*_*234 5

我将陈述我的答案希望解决的问题:

  1. 假设你的机器上托管服务比web服务器,问题是你给潜在的攻击者这些机器的名称/地址.

  2. 攻击者可以编写脚本/漫游器来抓取您的数据.

  3. 攻击者可以专注于您的Web服务,并尝试破解他们/访问您的网络.

  4. 攻击者可以尝试在您的Web服务上执行DoS/DDoS.

我过去使用的解决方案是在Web服务器上创建一个轻量级代理,这样所有AJAX调用都只需指向当前域.然后,当呼叫进入时,它只是路由到适当的Web服务,该服务托管在网络内部的某个位置.

它在网络上创建了一个额外的跃点,但它也具有以下优点:

  1. 它隐藏了托管您服务的机器的实际IP.
  2. 您可以轻松锁定该Web服务器并监视异常活动.如果您看到活动激增,则可能会关闭Web服务.(如果你使用不同的机器,你必须监控两个盒子.这不是一个大问题,但更容易监控一个.)
  3. 您可以轻松地在分布式代理中放置分布式缓存层.这可以保护您免受加载/拒绝服务(DoS)攻击,并且显然支持正常的Web服务流量.
  4. 您可以在代理级别隐藏身份验证.公共电话不会背叛您的身份验证方案.否则,攻击者可以看到您使用的令牌,密钥或秘密或其他内容.在Web服务器上创建代理会隐藏该信息.数据仍将流经,但您可以再次监控它.

我认为真正的好处是它减少了应用程序的表面区域,从而缩小了攻击者可以做的范围.