2016-05-01 6 views
0

私のゲームには約300以上の画像があり、それらはすべてSWFファイル内のサブドメインからロードされます。今彼らがしているのは、クロムブラウザを使って「要素を検査」し、ネットワークに行き、彼らが望む画像用の新しいタブでそれらを開くことです。 SWFファイルブラウザベースのゲームなので、SWF Webページのように画像を右クリックして保存することはできません。悪意のあるユーザーから画像を保護する方法

私が知りたかったのは、私たちのウェブサイト上のファイルを何らかの形で見ても、それらをブロックしてゲームに読み込ませることができるのですか?私たちの主なドメインがサブドメインからファイルを取得するだけで、人々がちょうどhttp://sub.mydomain.com/image.pngにアクセスして画像を保存することを許可しないことでこれが可能かどうかはわかりません。

+0

あなたがそのサブドメインを管理している場合は、(swf)ドメインに基づいて画像へのアクセスを制限するのが簡単かつ簡単な方法かもしれません。彼らはあなたのswfがそれらを "見よう"としようとすると見えますが、他のアクセスのためにサーバによってブロックされます。あなたが* nixサーバー上にいるなら、あなたは "htaccess"を探す必要があります。これは有望そうです:http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access(あなたのドメインでlocalhostを置き換えます)。画像はまだユーザーのキャッシュに残っており、そこから取得することができます – Philarmon

答えて

0

インターネットの仕組みのため、技術的に不可能です。誰かがあなたのサイトを訪問すると、ブラウザは画像を取得するリクエストを出します。だから、その時点では、画像はどこかのコンピュータに座っていて、おそらく一時的なものです。画像を見ることで、彼らは「ダウンロードしました」。 、あなたががあなたのゲームのための画像を取得する方法に応じて、(このかもしれないが、カスタムユーザーエージェントを必要と

  1. :言われて、あなたのようなことをやってことで(隠すことによるセキュリティ)物事がより困難にすることができ

    難しいです)。

  2. 特定のヘッダーが(#1のより一般化されたバージョンに沿って)送信される場合にのみイメージを返します。
  3. 各画像にワンタイムキーのマップを作成します。キーは要求内に存在する必要があります(ヘッダーまたはクエリーパラメーターのいずれかとして)。画像が要求されるたびに、キーが変更されるので、ブラウザの新しいタブにリンクをコピーすることはできません。
  4. 難読化されたJavaScriptを使用して、svgsを使用してイメージを作成します。ダウンロードするイメージファイルはありません。
  5. HTTPメソッドがPOSTまたはGET以外の場合のみ、イメージを返します。公平で、これは少し奇妙です(これらはすべてですが)ので、私はそれをお勧めしません。
  6. イメージファイルが読み込まれるたびに名前を変更します(キーコンセプトに似ています)。これらは単なる障壁で一日の終わりに

ものの、決定した利用者は、静止画像を得ることができ、ほぼすべてのユーザーは、単に画像をスクリーンショットすることができます。だからおそらくあなたの時間の価値はありません。

0

1つの方法は、画像のバイトを難読化することです。故意にバイトを混ぜて、あなたのゲームSWFにバイトをロードさせ、それらをリフィックスし、出力を表示させることを意味します。

イメージは、実行時にSWFアプリケーションがそれらを「修正」すると表示されるため、URLを介してイメージファイルを取得するだけで、破損したイメージが表示されます。ここで修正する唯一の方法は、正確にを確認して、それらのバイトに表示可能にするためにゲームコードが何をしているかを知ることです。

非常に基本的な例:、次の10の順序を逆にし、次の10をスキップ:
は、ファイルのバイト数を指定したプログラムは、10バイト&逆順にそれらを取る、(それらをスキップすなわち)通常次の10バイトを保つ書きます画像をサーバーに保存します。今度は、SWFが10バイトごとに逆順になるようにプログラムされています(逆順に戻って通常の順序に戻ります)。10をスキップします。これは、イメージバイトをロードした後に行います。通常のload bytes, decode format and show pixels(失敗する)の代わりに、バイトを読み込み、乱雑なバイトを修正してから、デコードしてピクセルを表示する必要があります。

PNGのオープニング最初の10のバイトは、次のようになります。 89 50 4E 47 0D 0A 1A 0A 00 00
しかし、あなたがそれらを逆ならば、彼らは00 00 0A 1A 0A 0D 47 4E 50 89ように見えます。今度は最初の10バイトのPNGファイルを開こうとすると、すべてのプログラムから無効な画像が通知されます。内容の泥棒は挫折したままです。

それだけで助けになるかもしれませんが、PNGバイトを知っている人もいます。どのバイト数が難読化され、どのくらいの頻度で変化するかを変えることは賢明でしょう。そのためパターンは容易には分かりません。

+0

これはクールなアイデアですが、ファイルはもっと難しいですが、 – Philarmon

+0

@Philarmon、ありがとうございます。ハードメンテナンスはどうですか?彼はオリジナルのコピーをオフライン(バックアップ)にして、難読化バイトPNGだけをゲームサーバーに置くことができます。とにかく私は彼がフラッシュコーダーだと思ったので、AS3&AIRを使ってフォルダをターゲットにすることができ、彼のコードは見つかった各PNGファイルを自動的に難読化し、編集したコンテンツをゲームサーバーにアップロードすることができました。彼がフォルダを指し、それが仕事をしている自分のapp/toolを作ることによって、彼は保護システムを持っていました。フォルダをクリアしてそこに新しいものを入れ、必要に応じてツールを実行し、結果をサーバーにアップロードします。 –

関連する問題