2009-11-24 49 views
2

我已經得到了一些特殊要求,其中一些關鍵算法必須在客戶端腳本中進行處理,並且要得到保護。使用JavaScript只會暴露該算法。我目前正在評估在客戶端腳本上保護算法的方法。欣賞任何建議和替代方法。安全的客戶端腳本

我想到的一個選擇是將一個小程序下載到本地PC,在其中完成計算並更新結果。在決定之前,我想知道客戶端腳本本身是否可以變得安全,因爲這會更容易。

在此先感謝!

+6

「安全的客戶端」不是一個矛盾嗎? – 2009-11-24 16:45:31

+0

定義「有保障」?如果你的意思是防止逆向工程,那是不可能的。 – 2009-11-24 16:50:16

+0

@Martin - 當你把它寫成onmoryox時,不是這樣,那是完全不同的事情。 – 2009-11-24 16:55:45

回答

4

你不能在客戶端PC上保護任何東西。

你在做客戶端的一切都是可以破解和可以拖動的。

這就是客戶端的PC。它會做客戶要求它做的任何事情。

1

底線是,如果有人想要你的邏輯......他們會得到它,除非它是服務器端,他們永遠不會以任何方式獲得它。

你想要的是一個Javascript obfuscator

+1

沒有JavaScript obfruscator可以*保證*任何東西。 – EFraim 2009-11-24 16:42:58

+1

我從來沒有說過它可以。因此我的帖子的第一行。 – 2009-11-24 16:43:19

+0

問題是,JavaScript obfruscator會給人一種虛假的安全感 - 事實上只有很少的安全感。 – EFraim 2009-11-24 16:45:27

0

的NPAPI插件將執行的客戶端並進行反向工程困難得多....但當然確定,黑客將能夠達到通。 ..

+0

真的嗎?給我我的調試器。 – EFraim 2009-11-24 16:43:38

+1

@EFraim:但當然你有能力在調試器的情況下進行逆向工程!這就是爲什麼我說**比例如**要困難得多。混淆或不Javascript。 – jldupont 2009-11-24 16:45:31

+1

小心解釋倒票?還是僅僅是一種「沒有好理由」的情況? – jldupont 2009-11-24 16:46:21

1

客戶端沒有任何東西可以完全「安全」。

你讓他們下載的任何東西都必須在客戶端PC上運行,因此可以進行分析。如果您讓他們下載一個applet或一個本機可執行文件,它仍然會包含機器指令,這些指令至少可以在裝配級別進行分析。

請問您有沒有辦法讓客戶端將數據上傳到您的服務器,並在服務器端執行計算?

+0

不幸的是服務器端目前不是一個選項。感謝您分享您的想法。 – Dhurka 2009-11-26 10:40:43

1

它是客戶端,那麼它不安全。任何關鍵的安全問題都應該在服務器上完成。

3

腳本不安全,您還需要什麼級別的安全性?如果您將任何內容下載到客戶端,客戶端將能夠查看該算法。當然,如果你下載一個原生的dll,然後反編譯它會更困難,問題是如果這足夠好。

大多數人在評估安全性時忽略了一件重要的事情,那就是百分百安全。因爲你的服務器管理員可以進入並從你的服務器上竊取二進制文件。如果您使用第三方託管誰知道誰有權訪問服務器。

這個想法是提高酒吧。你想防止平均腳本小子?混淆它,使他們難以理解理解該算法的好處可能無法證明試圖理解它的痛苦。

您可以做的最好的做法是將算法保留在服務器上並通過Web服務公開它。

+0

謝謝喬希。我完全同意你,沒有什麼是100%安全的。我只是不希望腳本非常明顯。現在下載本機DLL會更好。再次感謝 – Dhurka 2009-11-26 10:33:16

2

最終用戶控制到100%的所有內容都可能被篡改,對於易於暴露的JavaScript尤其如此。

你正在走錯路。你需要重新思考你的方法。

2

您可以構建一個包含關鍵算法的Web服務並從JavaScript調用它。

0

理論上(我的意思是說這是一個Comp.Sci。的意思)這個可能的。密碼技術被稱爲「完全同態加密」。目前,該方法還不實用。沒有可用的編譯器能夠以相同的安全形式轉換您的算法。