0

ログインシステムをWebサイトに統合していますが、ビデオゲームプログラマーであり、Webサイトをゲームに統合したいと考えています。私はPHPを使用してユーザーのパスワードをチェックしており、後でユーザーを検証するために使用できるランダムなユーザーIDを返すことを想定しています。ユーザー情報を検証するためにゲームからウェブサーバーへのPOSTリクエストを行っています。ユーザー認証専用のサーバーをホストできず、現在のウェブホストはMYSQLデータベースへのリモートアクセスを許可していないため、これが唯一のオプション。これが私にフィットを与えているコードの最後のビットです。

$userid = $this->generateRandID();
$time = time();

$database->updateUserField($_POST["username"], "userid", $userid);
$database->addActiveUser($_POST["username"], $time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);
echo($userid);

ユーザーをアクティブユーザーとして追加し、mysqlデータベースのuseridフィールドを更新してから、ユーザーIDをエコーし​​てゲームに保存するとします。問題は、エコーされたユーザーIDがデータベース内のユーザーIDと同じではないように見えることです。これがupdateUserFieldです。これは私にとってのショートカットなので、何らかの理由で変更する必要がある場合でも、多くのコード行を変更する必要はありません。

function updateUserField($username, $field, $value){
    return mysqli_query( $this->connection, "UPDATE ".TBL_USERS." SET ".$field." = '$value' WHERE username = '$username'");
}
4

1 に答える 1

0

あなたのコメントから、ユーザー ID を乱数に置き換えようとしている理由は、アプリケーションに特定のセキュリティ レベルを追加するためのようです。ユーザーデータの永続性とは別にセッションを処理する方が良いと思います。現時点では、サードパーティ アプリケーションのシステムへのプログラムによるアクセスを管理する業界標準は oAuth です。公式の oAuth ドキュメントまたは oAuth の初心者向けガイドをご覧ください。標準の oAuth ワークフローは、ユーザーがサイトの Web ページで直接認証することを前提としていますが、「2 脚の oAuth」もあります。これにより、ユーザーはサードパーティ アプリケーション自体 (この場合はゲーム) で資格情報を提供できます。oAuth を実装する理由には、セキュリティ、認証とデータの分離、サイトの目的、クライアントとプロバイダーライブラリのサポートなどがあります。

于 2012-06-25T03:04:17.017 に答える