-2

ビデオ ゲームで、ユーザーが MySQL サーバーからマップ データを公開/取得できるようにしたいと考えています。私の問題は、プログラムがレベルを作成/取得できるように制限し、ページから地獄をスパムして偽のレベルを大量に作成できないようにしたいことです(phpページによる)

私は偽のリクエストの数を防ごうとしています。これにより、ゲームをプレイしている実際のユーザーのみが実際に PHP コンテンツにアクセスできるようになり、体験を台無しにしたい人はアクセスできなくなります。

コードの簡単なチェックができることはわかっていますが、そのコードが見つかった場合はどうなりますか? これは実際には認証ではなく、おそらくシリアル チェックを行うこともできますが、ゲームではオンラインでの登録やアカウントの作成はまったく必要ありません。

4

3 に答える 3

0

コメントで述べたように、REST Web サービスを使用することをお勧めします。私は実際にtonic REST フレームワークを使用しています。軽量なものが必要な場合は、silexが適しているかもしれません。

于 2012-12-09T10:59:41.063 に答える
0

あなたが恐れている問題は、php ページが Web アクセス可能になり、誰でもアクセスできるようになることだと思います。その場合、$_GET 変数を使用してページを保護し、データを送信します。

たとえば、レベルを作成するには: http://www.example.com/create.php?key=hkjaSDFg45fgsdGDF&user=13542&map=underground&etc ..

次に、create.php ファイルでは次のようになります。

<?php
if(isset($_GET['key'] && $_GET['key'] == hkjaSDFg45fgsdGDF){
  //check if user is allowed -- $_GET[user]
  if(userallowed($_GET['user'])){
    //create map
  }
}

これは一例にすぎませんが、本格的な API を作成したくない場合は、このようなもので十分です。

常に最初にデータを検証し、決して $_GET 変数から直接使用しない

于 2012-12-09T11:01:31.067 に答える
0

まず、悪意のあるユーザーがいつでもそのサーバーにアクセスして、必要に応じてそれらのマップを作成できることを受け入れる必要があります。彼らはゲームのコードを持っているので、それをリバース エンジニアリングして、思いつく限りのことを元に戻すことができます。

  • ユーザーにサーバーのアカウントを作成してもらいます。ここでは、ある種のキャプチャを使用できます。
  • 登録済み/ログイン済みのユーザーにマップの送信を要求する
  • ユーザーが 1 分間に作成できるマップの数を制限する (実際のユーザーに影響を与えないようにゲーム コードを記述します)
  • ユーザーが送信できるマップの総数を制限する可能性があります
  • 可能な限り HTTPS を使用してください。
于 2012-12-09T11:21:40.033 に答える