2011-08-23 84 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