私は現在、非常に忙しいインターネットのWebサイトのAPIを構築しています。 MySQLでPHPで書かれています。これは私の最初のAPIで、人々が自分のアカウントに遠隔からアクセスできるようにしています。 APIがオンラインになると、開発者は独自のツールを書くことができます。PHP/MYSQLで安全なパブリックAPIを構築する
APIは動作していますが、完全に安全かどうかはわかりません。働くだろう
例のURLは次のとおりです。http://domain.com/api.php?api_option=list&api_user_name=USERNAME&api_user_password=PASSWORD
USERNAME
:ユーザーが実際のユーザー名
PASSWORD
次のようになります。彼らの実際のパスワードのMD5エンコードされた文字列になります。
詳細が一致する場合は、結果が返されていない場合はエラーが返されます。
すべて外部$_GET
入力はmysql_real_escape_string()
の処理を取得します。
私は物事を単純にしたいと思っていましたが、この方法がユーザーアカウントデータに直接アクセスするパブリックAPIを持つ安全な方法であるかどうかはわかりません。
アイデアや提案は大変ありがたいです。
パスワードのハッシュがURLにあることは良い考えではありません。より良い方法は、ユーザーとAPIの間に何らかの認証形式を呼び出すAPIキーを置くことです。 – diagonalbatman
すべてのコメント、ありがとう、OAuth、私が必要なもののために少し複雑に思えるので、私は独自のAPIキーのセットアップを構築しています。私はauthキーがuser_idにリンクされているデータベースに格納されるところで働く何かを持っています。この設定は機能しますが、ユーザーはこのキーを取得する必要があります。他のユーザーがこのAPIからツールを作成する場合、ユーザーは登録したユーザー名/パスでログインできる必要があります。だから私は、ユーザー名とパスワードの両方を受け取ってリモートからAPIキーを生成することができる最初の$ _GET URLを取得する方法はまだ分かりません。 –