2012-02-26 27 views
0

我知道你們中的一些人只是覺得這是一個完全錯誤的問題,但我有這樣的一些要求,這就是爲什麼我問這個問題。我知道JavaScript是由客戶端瀏覽器下載的,所以很難隱藏它。是否有可能從用戶隱藏基於Web的遊戲jQuery代碼?

所以,現在我已經完全寫在jQuery的遊戲代碼和我想的是,用戶無法看到完整的代碼,因爲:

  1. 遊戲的擁有者不希望顯示遊戲代碼給用戶。

  2. 如果一個聰明的用戶讀取代碼仔細,那麼他/她也許能解決這一難題(這是一個益智遊戲)。

那麼,是不是不夠好,使用谷歌關閉編譯器或銳壓縮機,使代碼不可讀&安全對於上述要求?

如果你認爲這是不可能做到這一點的情況,那麼請建議我這樣做的任何其他方式。我是否需要將遊戲代碼完全重寫爲服務器端語言,然後使用某種工具將其轉換爲js?

+0

@Peeyush根據一些工具腳本的大小,智能用戶將獲得該代碼的部分需要在更短的比10分鐘。 JavaScript仍然沒有這種安全性。當然,你可以縮小和打包代碼,但這隻會減慢用戶。 – Bakudan 2012-02-26 09:32:39

回答

1

Javascript是一種客戶端語言,爲此,您將始終需要向用戶顯示代碼。

你可以做的是壓縮和精縮...

同樣的事情,所有的JavaScript框架outthere,檢查this original version並與minified and compressed version

+0

所以我認爲谷歌封閉編譯器是足夠的it.is它呢? – Peeyush 2012-02-26 09:30:38

+0

最好的市場是[雅虎壓縮](http://developer.yahoo.com/yui/compressor/),但你可以使用任何其他... – balexandre 2012-02-26 11:17:13

0

比較這是不以任何方式一個完美的解決方案,只有一個選擇:你可以通過AJAX請求從服務器獲取實際的JavaScript代碼,並使它們可以運行,例如。通過eval() - 他們。

這仍然沒有完全隱藏的代碼,但是這使得源中的源代碼本身不可見。

通過混淆源的方式是其他的做法使代碼不可讀。

0

我建議不具有JS整個遊戲(即下載到客戶端)。無論你如何混淆代碼,人們都會弄清楚併發布它。把所有的遊戲邏輯和謎題放在服務器端,使用某種類型的rpc調用。這可以是一個簡單的PHP腳本,您可以發送一個Ajax消息來檢查解決方案增量是否正確。 PHP腳本會查找答案並返回響應。當然,這並不一定是PHP,使用任何服務器端技術,你是內行。