4

私はPHPでRIAに取り組んでいます。セッションの乗っ取りを防ぐために、ソルト、ISO-8601 週番号、およびユーザーの IP に基づいて、ログイン時に生成されるトークンを導入しました。

$salt      = "blahblahblah";
$tokenstr  = date('W') . $salt . $_SERVER['REMOTE_ADDR'];
$token_md5  = md5($tokenstr);
define("token_md5", $token_md5); 

現在、すべてのリクエストで GET または POST によって渡されますが、ユーザーの IP に依存するため、Cookie として提供することでこれを回避できないかと考えていました。私はちょうど今セッションを学んでいるので、それを行うことにセキュリティ上の懸念があるかどうか疑問に思っていましたか? それは悪い考えですか?

4

3 に答える 3

8

ユーザーが保持しているデータは盗まれる可能性があります。訪問者が送信するデータは、なりすましの可能性があります。セッションが開かれたときにリモート IP を保存し$_SESSION、リモート IP をすべてのリクエストと比較することをお勧めします。一致しない場合は、おそらくハイジャックです。新しい ID を生成し、ユーザーに再度ログインしてもらいます。

于 2009-11-22T02:48:37.110 に答える
7

session_regenerate_id()セッションハイジャックを防ぐのに最適です。

session_regenerate_id— 新しく生成されたセッション ID で現在のセッション ID を更新します

ページにアクセスするたびに session_id を継続的にローテーションします。絶え間なく移動するターゲットを乗っ取ることを非常に困難にします。

于 2009-11-22T01:41:47.080 に答える
0

私はあなたが行ったのと同じアプローチで RIA を行い、セキュリティのためにアプリケーションに SSL をセットアップしました。Flex とリモーティングはセッションレスであるためです。SSL の使用をお勧めします。私の同僚も、ユーザーのログイン/ログアウトを使用してアプリケーションを開発し、彼は同じことをしました。

于 2009-11-22T01:42:33.250 に答える