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服务来与服务器进行交互.
互联网无法通过隐藏URL来始终保护您的Web服务.我不确定当你说你的updatepanel从服务器调用web服务时你没有采用AJAX的真正威力.
保护Web服务的一种方法是在Web服务端使用身份验证.例如,每次访问源时都需要发送一些身份验证密钥,这很常见,你有很多公共Web服务使用auth密钥(如OpenId实现)自我保护.如果您不想更改Web服务逻辑,我认为AJAX的jquery方式不是一个安全的选项.
这是一个想法,你可以有两个级别的web服务,一个将打开你可以在jquery中使用的所有.从当前的Web服务,从服务器端调用其他安全的Web服务.即使是现在,您也可以配置某些特定计算机IP的传入请求.
在这种情况下,除了您自己的服务器之外,没有其他人可以访问安全地保留在防火墙后面的Web服务.这与从应用程序服务器连接到数据库服务器时的操作类似.
如果这有帮助,请告诉我.
我将陈述我的答案希望解决的问题:
假设你的机器上托管服务等比web服务器,问题是你给潜在的攻击者这些机器的名称/地址.
攻击者可以编写脚本/漫游器来抓取您的数据.
攻击者可以专注于您的Web服务,并尝试破解他们/访问您的网络.
攻击者可以尝试在您的Web服务上执行DoS/DDoS.
我过去使用的解决方案是在Web服务器上创建一个轻量级代理,这样所有AJAX调用都只需指向当前域.然后,当呼叫进入时,它只是路由到适当的Web服务,该服务托管在网络内部的某个位置.
它在网络上创建了一个额外的跃点,但它也具有以下优点:
我认为真正的好处是它减少了应用程序的表面区域,从而缩小了攻击者可以做的范围.