1

ユーザーがログインした後、によって設定されたユーザー名にCookieが設定されているWebアプリがありますsetcookie()

セキュリティのためのより良いアプローチを提案してください。

4

1 に答える 1

2

Cookie の代わりに PHP セッションを使用します。セッション変数はサーバー側です。PHP は自動的にセッション管理を処理します。さらに制御したい場合は、その機能をオーバーロードすることもできます。

http://php.net/manual/en/intro.session.php

session_start();

$_SESSION['user'] = 'michael'

PHP セッションでは、セッション ID のみがブラウザーの Cookie に保存されます。スーパーグローバル変数$_SESSIONに任意の情報を保存でき、ブラウザはこれらの変数を表示したり改ざんしたりできません。

安全性を高めるために、ログインに使用されたリモート アドレスを保存し、ページの読み込みごとに比較する必要があります。これは、誰もセッション ID を乗っ取ったり、別の場所からログインしたふりをしたりしていないことを確認するためです。

session_start();

if (_logging_in__) {
   $_SESSION['user'] = 'michael'
   $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}

ユーザーがログインしているかどうかを確認します。

session_start();

if (isset($_SESSION['user'])) {
   // the user is logged in
   if ($_SERVER['REMOTE_ADDR'] != $_SESSION['ip']) {
      // the session id was hijacked so log out
      session_destroy();
      exit;
   }
}
于 2012-12-29T07:46:10.057 に答える