1

重複の可能性:
セッションハイジャックの防止

Webアプリケーションのログインおよび認証システムをコーディングしており、PHPセッションハイジャックを防ぐためのベストプラクティスを探しています。ログインページセットのセッション:

$_SESSION['email_address'] = $_POST['email_address'];
$_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR'];

次に、すべてのページとアクションで、セッションが存在し、セッションに格納されているIPアドレスが$_SERVER['REMOTE_ADDR']のIPアドレスと一致していることを確認します。

if(isset($_SESSION['email_address']) && isset($_SESSION['ip_address']) && $_SESSION['ip_address'] == $_SERVER['REMOTE_ADDR']) {
     //valid auth
}

ただし、オンラインで読むと、IPアドレスを確認するだけでは不十分だと言う人もいます。他に何が必要ですか?また、を使用するという話もありsession_regenerate_id()ます。それは私のコードにどのように影響しますか?session_regenerate_id()すべてのページに電話しますか?

ありがとう。

4

1 に答える 1

0

独自のログイン システムをコーディングしている場合は、すべてのセキュリティ問題に精通しており、このサイトのようなオンラインの人々からの質問に頼らないことを願っています。$_SESSION は、共有サーバー上で自動的にセキュリティ リスクになります。$_SESSION は、システム上で実行されているすべての php プロセスで利用できます。クライアントのいずれかが共有サーバーでソフトウェアを実行することになった場合、そのための計画を立てる必要があります。

また、セキュリティ ホールを作成する間違いをコーディングすることも非常に簡単です。Yii または強力な認証手段をすでに提供しているフレームワークを使用する方がよいでしょう。たとえば、Yii は、開始するためのログインとセキュリティ プラグインを提供するだけに要約できるようにしたい場合に得られる基本的なものです。

于 2012-11-08T06:01:37.890 に答える