3

私は自分のウェブサイトで、何ヶ月もかけて取り組んできた大きな問題に出くわしました。問題は、ユーザーが firebug などのツールを使用して Web サイトの HTML を変更できることです。問題は、ユーザーがフォームの一部を変更すると、メッセージ/投稿/その他の送信先が変更される可能性があることです。

私は現在、コメント、メッセージ、投稿、およびその他のフォームの大部分を次のように設定しています (使用するユーザー情報を送信する限り:

 <form rel="1"></form>

relを、コンテンツの送信先のユーザー ID を格納する場所として使用します。したがって、これはIDが1のユーザーに送られます。問題は、ユーザーがhtmlでこれを5のように変更し、フォームを送信すると、ユーザー5に送られます。これを再確認するにはどうすればよいでしょうか。情報がサーバーに到達するとき、変更などがある場合は通過しません。

私が考えることができる唯一のことは、ユーザーIDまたは何かをハッシュし、その値をrelに保存することです. これは問題を解決しませんが、誰かがそれを理解するのを少し難しくするかもしれません.

4

2 に答える 2

2

ユーザー ID をセッションに保管します。ユーザー入力からのそのような重要なことに依存することは、ひどい考えです。

session_start();
$_SESSION['user'] = array();
$_SESSION['user']['id'] = $result_set['id']; // or however else you may have retrieved their UID
$_SESSION['user']['name'] = $result_set['username']; // STORE ALL THE VARIABLES!!!
于 2012-12-31T18:03:34.467 に答える
0

これを行うことを検討する必要があります

  1. ユーザーIDとユーザーは平文で保存する必要があります
  2. パスワードは SHA とソルトでハッシュする必要があります。ソルトの長さは、SHA ハッシュの長さと同じにする必要があります (256、512 など)。
  3. $_SESSION['userid'] がデータベースのユーザー ID と一致し、 $_SESSION['session_key'] がデータベースの session_key と一致する場合、セッション キー、サーバーと $_SESSION に格納されているランダムな文字列を使用します。
  4. セッションで期限切れタイマーを使用し、セッションが期限切れになる時間値を保存し、セッションが有効かどうか、または期限切れかどうかを常に確認します
  5. 認証データは、DOM 要素にプレーンな html として保存する必要はありません。セッションまたは最悪の場合の Cookie に保存する必要があります。
于 2012-12-31T18:08:40.727 に答える