2017-10-28 9 views
0

私は大学でプロジェクトのために自分のソーシャルメディアネットワークを作っています。一つのハードルは安全な形です。フォームからのユーザー入力を保護するPHP

私は、1人のユーザーが別のユーザーにフレンドリクエストを送信するオプションを作っています。これをコード化できます。しかし、その難しい部分はそれを安全にしています。 xxxxxx/profile.php?id = 2 & action = sendfrを使用すると、そのリンクを送信して友だちリクエストを送信できます。

action = sendfrをPOSTデータとして送信した場合、spooferは同じことを行うためにウェブサイト上にフォームを作成できます。

私が検討している1つの方法は、これらの目的のためにクライアントに送信されるPOSTデータにある種のAuthKeyを送信することです。

ユーザーの操作を安全にするために最適なオプションをお勧めしますか?

+1

CSRFがおそらく助けてくれるかもしれません。おそらく –

+0

私が使用する唯一のCookieはPHPSESSIDです。私の考慮事項は、アクションを認証するためにPOSTフォームで使用できるjavascript変数を使ってユーザーにトークンを送信したときです。 –

+0

フレームワークを使用していますか? –

答えて

2

回避しようとしているのはCross-site request forgeryです。 There several ways to avoid themしかし、最も一般的なのは、サーバーにランダムなトークンを生成し、永続データを変更できるすべてのページで送信することです。その後、ユーザーが要求を送り返すときには、サーバーがトークンが一致するかどうかを確認できるようにトークンを含める必要があります。この場合、トークンはランダムであり、要求ごとに異なる必要があります。上にリンクされているOWASPのページで、より詳細な情報やテクニックを見つけることができます。

+0

セッションを開始すると(ユーザーがログインしたとき)そのPHPセッションでは$ _SESSIONに格納されているトークンがユーザに与えられます。このトークンは、POSTを介してサーバーに中継するフォームにエコーされます。 –

+0

あなたのCSRFトークンがセッショントークンと同じでない限り、あなたはOKでなければなりません – Tae

関連する問題