2013-02-06 106 views
3

有些人問過關於保護HTML5應用程序和保護免費應用程序的類似問題,但不是兩者都在一起。我單獨提出這個問題是因爲我有印象(無論對或錯),HTML5對本地特別不安全。如何保護免費HTML5免受變量修改?

我正在研究一個嵌入式HTML5應用程序,我想通過免費增值模式獲利,但我很擔心如何保持其虛擬貨幣和評分變量不被最終用戶所迷惑,因爲我恐怕這可能會對收入產生負面影響,因爲一些黑客(無意使用該術語)會創建YouTube視頻或關於漏洞利用的博客文章。我認爲這種情況發生的可能性很小,但我認爲漏洞的重要性會隨着流行而變得更加重要。我也擔心有人可以複製應用程序。

我雖然意識到兩者都可能固有與設備上安裝的應用程序。

我的問題是:

  1. 有多容易,在您的意見或經驗,惹的 是非模糊的基於嵌入式(不依賴於瀏覽器)HTML5應用和它的JavaScript VS與核心文件本機應用程序在Java或Objective-C數據上?/混淆在HTML5應用程序上的工作與在數據保護方面的本機混淆 應用程序有什麼關係?
  2. 混淆HTML5應用與在普通Android應用上使用Proguard之類的東西有多困難?
  3. 混淆是否會導致HTML5顯着減慢普通用戶的速度?
  4. 最後,你覺得用免費增值功能有一個HTML5應用程序是否可行?或者你個人認爲它太脆弱了?

我基本上想知道的是,HTML5是否特別易受攻擊或難以保護,至少與保護本機應用程序相比。如果混淆的HTML5應用程序與常規應用程序一樣安全或不安全,那麼我想我可以使用它。

+1

如果安全性問題,您可以隨時使用MySQL。但是+1,因爲我很好奇看到別人有什麼要說的。 – David

回答

5

防止作弊(和解鎖免費增值物品是一種欺騙行爲)的唯一方法是將所有相關的遊戲邏輯移動到服務器。忘記混淆。當它在客戶端機器上執行時,它在用戶的控制之下。混淆可能會降低用戶的速度,但它不能阻止那些決心破解它的人。這不僅適用於JavaScript,它適用於每個遊戲客戶端,不管它使用什麼編程語言編寫。

設計防止欺騙多人遊戲的一般規則是永遠不要相信客戶端並進行所有計算這與服務器上的遊戲相關。

+0

感謝Philipp的回答。我不需要排除所有的作弊行爲,我只是希望能夠讓普通用戶無法訪問它。現在我已經順從了事實,第二個遊戲變得相當受歡迎,甚至在中國市場上有點流行,我可能會有克隆。但是我擔心像Cut the Rope這樣的網頁版本會出現這樣的漏洞,並擔心他們可能會看到[http://dev.appmobi.com/?q=node/244](http:// dev.appmobi.com/?q=node/244)。 – Hack

1

在我看來,最好是混淆而不要信任客戶端。 不僅如此,我甚至會壓縮混淆的代碼,並且會在客戶端和/或服務器中添加混淆的解壓縮器。該技術是可行的,這是專業公司在網絡上使用的。

現在,爲您解答:

  1. 這並不容易亂用正確混淆代碼(東西 這將需要你壓縮/隱窩偶數)。專業 黑客不會混淆你的代碼「爲體育」,除非他們給予 錢這樣做,即使在這種情況下,他們將很難做 它(這就是爲什麼我不相信「忘記混淆」的想法 )。
  2. 模糊處理在數據保護方面效果非常好。您的代碼 變得不可讀,並且在某種程度上,它可以被看作是 壓縮算法,因此它減少了文件大小和加載時間。
  3. 如果您依賴專業工具,可以將混淆如JS,html5,css和php的所有功能混淆在一起,則混淆很容易。這是 只有更難,如果你要開發這樣tools.But那裏的領域也存在 開源軟件。
  4. 它減慢「普通用戶」肯定,他們覺得在 你的代碼前丟失。
  5. 這是實用與免費增值功能的HTML5應用,但它 一切都取決於你實現這樣的選擇。
  6. 如果按上面所述正確完成,它的脆弱性不大,但是,我個人不喜歡這種商業模式。