0

ログインシステムを構築しており、もう少し安全なものにしたいと考えています。まだ完了していないため、ログイン プロセス ファイル全体を投稿することはしませんが、システム全体をより安全にするために、短い To Do スタイルのリストが必要です。PDO のプリペアド ステートメントを使用すると、SQL インジェクションを防ぐことができます。私は明らかにパスワードをソルトでハッシュしています。他に重要なことはありますか?本当に助かります!

header()また、フォームでの使用は推奨されていないこともどこかで読みました。(例: 登録プロセスが完了した後にユーザーをリダイレクトする。) これは本当ですか? そして、他のいくつかの選択肢は何ですか?

ちなみに、フォームデータは当然別ページで処理されるので、処理ファイルからエラーを返すことはできないかと思っていました(「ユーザー名が短すぎます」など)。jQuery.post()とコールバック関数で簡単に実行できることは知っていますが、ただ興味があります:D

4

2 に答える 2

1

ログインシステムに関する私の提案は次のとおりです。

  • ユーザーの ID を Cookie に保存する
  • 特別なトークンとハッシュ + ソルトを生成し、Cookie に保存します
  • すべてをデータベースに保存する
  • ページが読み込まれるたびに Cookie からデータを取得し、データベースで検索してみてください
  • 見つからない場合は、ユーザーをログアウトします
  • ページの読み込みごとにトークンを変更する

header()ユーザーをリダイレクトするために使用できますが、その後にdie()orを使用することもexit()できます。これらのいずれかを使用しないと、コードの残りの部分が実行を継続するためです。

于 2012-07-03T17:50:56.547 に答える
1

確かに、エラーを送り返すことができます。たとえば、

<form method="post" action="action.php">
  <input type="text" name="username" />
</form>

次に、action.php で、 の長さをチェックするときに、$_POST['username']短すぎる場合は、次のようにします。

 print('<p class="warnings">The username is too short; it must be between X and Y characters.</p>');
 require('yourform.php');

yourform.php上記のフォームの HTMLが含まれています。

于 2012-07-03T17:46:32.013 に答える