我已經得到了一些特殊要求,其中一些關鍵算法必須在客戶端腳本中進行處理,並且要得到保護。使用JavaScript只會暴露該算法。我目前正在評估在客戶端腳本上保護算法的方法。欣賞任何建議和替代方法。安全的客戶端腳本
我想到的一個選擇是將一個小程序下載到本地PC,在其中完成計算並更新結果。在決定之前,我想知道客戶端腳本本身是否可以變得安全,因爲這會更容易。
在此先感謝!
我已經得到了一些特殊要求,其中一些關鍵算法必須在客戶端腳本中進行處理,並且要得到保護。使用JavaScript只會暴露該算法。我目前正在評估在客戶端腳本上保護算法的方法。欣賞任何建議和替代方法。安全的客戶端腳本
我想到的一個選擇是將一個小程序下載到本地PC,在其中完成計算並更新結果。在決定之前,我想知道客戶端腳本本身是否可以變得安全,因爲這會更容易。
在此先感謝!
你不能在客戶端PC上保護任何東西。
你在做客戶端的一切都是可以破解和可以拖動的。
這就是客戶端的PC。它會做客戶要求它做的任何事情。
底線是,如果有人想要你的邏輯......他們會得到它,除非它是服務器端,他們永遠不會以任何方式獲得它。
你想要的是一個Javascript obfuscator
客戶端沒有任何東西可以完全「安全」。
你讓他們下載的任何東西都必須在客戶端PC上運行,因此可以進行分析。如果您讓他們下載一個applet或一個本機可執行文件,它仍然會包含機器指令,這些指令至少可以在裝配級別進行分析。
請問您有沒有辦法讓客戶端將數據上傳到您的服務器,並在服務器端執行計算?
不幸的是服務器端目前不是一個選項。感謝您分享您的想法。 – Dhurka 2009-11-26 10:40:43
它是客戶端,那麼它不安全。任何關鍵的安全問題都應該在服務器上完成。
腳本不安全,您還需要什麼級別的安全性?如果您將任何內容下載到客戶端,客戶端將能夠查看該算法。當然,如果你下載一個原生的dll,然後反編譯它會更困難,問題是如果這足夠好。
大多數人在評估安全性時忽略了一件重要的事情,那就是百分百安全。因爲你的服務器管理員可以進入並從你的服務器上竊取二進制文件。如果您使用第三方託管誰知道誰有權訪問服務器。
這個想法是提高酒吧。你想防止平均腳本小子?混淆它,使他們難以理解理解該算法的好處可能無法證明試圖理解它的痛苦。
您可以做的最好的做法是將算法保留在服務器上並通過Web服務公開它。
謝謝喬希。我完全同意你,沒有什麼是100%安全的。我只是不希望腳本非常明顯。現在下載本機DLL會更好。再次感謝 – Dhurka 2009-11-26 10:33:16
最終用戶控制到100%的所有內容都可能被篡改,對於易於暴露的JavaScript尤其如此。
你正在走錯路。你需要重新思考你的方法。
您可以構建一個包含關鍵算法的Web服務並從JavaScript調用它。
理論上(我的意思是說這是一個Comp.Sci。的意思)這個是可能的。密碼技術被稱爲「完全同態加密」。目前,該方法還不實用。沒有可用的編譯器能夠以相同的安全形式轉換您的算法。
「安全的客戶端」不是一個矛盾嗎? – 2009-11-24 16:45:31
定義「有保障」?如果你的意思是防止逆向工程,那是不可能的。 – 2009-11-24 16:50:16
@Martin - 當你把它寫成onmoryox時,不是這樣,那是完全不同的事情。 – 2009-11-24 16:55:45