2012-03-08 9 views
11

人々はHTML5の言葉をよく言いましたが、私の主な懸念事項の1つはゲームのソースコードを保護する方法です。他のプラットフォームでゲームをダウンロードするから他のを防ぐため、それをホストする方法を本質的HTML5ゲームのソースを保護する

...私たち自身の開発したゲームエンジンを使用してから他のを防ぐために、どのように

  1. (それは巨大な資産です)
  2. どのようにソースのサーバーAPI呼び出しの詳細を非表示にするか?私たち自身のスコアボードAPI、バーチャル通貨APIなど。
+1

基本的に「これを止めることはできません」という回答がありますが、ゲームの_client-side_コンポーネントにのみ適用されます。 _server-side_コンポーネントは安全です。つまり、サーバーAPIとの間でリクエストやレスポンスを見ることはできますが、APIがサーバー上でどのように実装されているかはわかりません。 – nnnnnn

+0

@nnnnnn完全にはっきりしていれば、API呼び出しの仕組みから多くの情報を得ることができます。オンラインゲームの大部分(WoWなど)には、非公式のサーバーがあります。正確な実装を隠すことはできますが、機能は隠すことはできません。 – zatatatata

+0

node-WebKitを使用すると、ウィンドウ内のexeファイルにゲームがコンパイルされます。 – zachdyer

答えて

11

「あなたはできません」という3つの質問すべてに対する答えです。あなたが行うことができる唯一のことは、あなたのコードに注目してコードに興味を持っている人の速度を落とすことですが、最終的に誰かがあなたのコードを使用したい場合、あなたはそれについて何もできません。

2

最終的に、ウェブ上の資産の保護はありません。ブラウザで見ることができれば、カールでダウンロードできます。資産の保護があなたにとって大きな懸念事項である場合、私はHTMLとJavaScriptをお勧めしません。

盗難を防ぐためにコードを難読化し、詮索を防ぐためにSSLを使用することはできますが、勤勉な人は他の方法でこれらのアセットに引き続きアクセスできます。

+0

SSLはスヌーピングを防止しません。 HTTPプロキシ(Fiddler2など)は、コンピュータから(ローカルプロキシ経由で)ホストに送信されたすべてのトラフィックを復号化できるように、途中で人を設定することができます。 –

0

あなたのJSコードは、それがはるかに困難再利用するようになりますが、縮小化

+0

jsコードを小さくすると、再利用は難しくなりますが、不可能ではありません。 jsの権限をChromeの開発ツールに組み込むことができますので、細かくすることはパフォーマンスの面でのみ行う必要があります。 – mpm

0

デジタルファイルをコピープロテクトするための物理的な方法はありません不可能ではありません。多くの業界が試みている。多くは失敗しました。悲しいことに、多くの人が引き続き失敗しようとしていますが、ビジネスは過去の間違いから学ぶのが難しいようです。

ベストをあまり重視しないこと。あなたの顧客に焦点を当てる。

4

安全なハードウェアキャビネット(空港など)のタッチスクリーンPCでゲームを実行し、インターネット経由でアクセスできないようにすることができます。あなたが探していた理想的な答えではないかもしれません。

+2

+1ボックスの外には+1 –

+2

+1箱の内側と外側の両方 – Tackle

7

私は個人的に難読化私のコード(Javaのファイルをダウンロードし、オンライン・バージョンを使用しないでください!)に高度な圧縮とGoogleの閉鎖コンパイラを使用しています。コードを準備するには多少の努力が必要ですが、それは非常にうまく文書化されています。そして、コンパイラの仕組みを理解すれば、そのルールに従うのは本当に簡単です。コードを難読化するだけでなく、実際には実行速度とファイルサイズを最適化します。

クリアする - はい他の人は正しいです、究極の保護はありません... bla bla。しかし、これまでにGoogleの頭や尻尾をJavaScriptで作成しようとしたことはありますか?私は試して失敗した。コードで難読化されたクラス名と非常に少ない文字列を使用すると、読みにくくなります。つまり、コードの複雑さに応じて数か月かかることがあります。

APIコールでは、状況が異なります。復号化コードがjavascript内で見えるように暗号化されません。たとえAJAXコードがいつも同じように見えるため、難読化されていても隠すことは難しいでしょう...また、暗号化はCPU時間を使い果たします。遅延は1つの方法ですが、結局APIコールは多かれ少なかれ読みやすくなります。

7

JavaScriptコードを難読化することは重要なステップの1つです。難読化はコードを非常に複雑にして、正気の人がそれをハックしようとすることはありません。

jscrambler.com私は良い結果を出しています。つまり、難読化はすべての問題を解決するわけではありません。ユーザーはブラウザとサーバー間で交換されるすべてのトラフィックを表示することができます。そこで、彼らはAPIの仕組みや使い方を知っています。

これを避けるには、javascriptを使用してメッセージの暗号化を使用できます。これはコンテンツを保護するのに役立ちます。私はJavaScriptを使用して暗号化について議論するstackoverflowの投稿を見つけました:Javascript AES encryption。パフォーマンスの影響が少ない、使用可能な実装がいくつかあります。

最後に、サーバー側ですべての入力を完全にチェックする必要があります。サーバー側で実装できるすべてのロジックはそのまま残ります。

関連する問題