2011-08-23 83 views
-1

我有面向服务的应用程序,其中有很多从JavaScript调用wcf服务,有没有一种方法可以加密或做任何有关js文件内的服务url?我的意思是有人可以采取的网址,并提出数百万的服务请求,并得到服务器关闭。保护js文件中的服务url

回答

1

浏览器必须能够读取的URL进行呼叫;这意味着在某些时候它将以纯文本形式提供,从而可供恶意用户以明文形式提供。

两件事情,这里要注意:

首先,绝不应该在JavaScript代码的任何敏感信息。这意味着密码,加密密钥或可远程用于做某些用户未被授权执行的任何信息。缩小/包装只会使代码难以阅读,但不会阻止确定的攻击者。所有的身份验证和安全性都必须在服务器端完成,这是您可以控制的一面。

二,如果您的服务安全依赖于URL未知,you don't have security at all。您可以使用WCF throttling来设法防止DOS攻击。防火墙还应该在数据包到达服务之前通过丢弃数据包来帮助阻止这种攻击。

2

在某些时候,url将被解码,原因很简单,它必须一次或另一次使用。

如果你有一个调试器启用(铬或萤火虫),你可以很容易地跟随ajax调用,只需点击url来重做!

您可以通过减少js来“加密”js,并通过调整/编写自己的迷你图/打包器来进行推送。

保护它的最好方法是验证后端(您的服务器)上的呼叫。

如果你想推动它真的很难,你可以在你的服务器之后加密url部分,并且为每个调用使用seed作为subdir(www.your.server/sha1EncodedSubUrl?prm = 1 & etc = more)。

然后,您必须确保您的服务器能够解码url,并将编码的部分链接/解码到将响应的服务器文件。

然后,您可以把时间放到编码的网址上,或将其链接到会话。服务器可能会有一些模块/插件,比如“handy/pretty urls”mods,但我不知道它们。

或者,您可以发送种子作为passthrou(ajax发回它作为参数)。通过示例www.yourserver.com/yourAjaxResponseFile.phpjswcf?prm=1 &等等= moar &种子= H48KKSJ17JU

+0

是那些好东西? http://java-applets.org/json-http-compression-wcf.html – user510336

+0

我不知道这一个,但它看起来比所有免费(在线)都贵。 [这个stackoverflow问题](http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript)涵盖了很好的混淆器问题;) – roselan