1

ユーザーが私の Web サイトにログインすると、暗号化された Cookie がブラウザーに追加されます。彼が戻ってきたら、ユーザーエージェントを含むさまざまな側面をチェックします。

しかし、非常に小さな変更により、このチェックが廃止されたようです。以下に例を示します。最初はユーザーがサインインしたとき、2 番目はユーザーが後で戻ってきたときです。

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36

Opera/9.80 (Series 60; Opera Mini/7.1.32448/30.3793; U; tr) Presto/2.8.119 Version/11.10
Opera/9.80 (Series 60; Opera Mini/7.1.32448/31.1325; U; tr) Presto/2.8.119 Version/11.10

Opera/9.80 (Android; Opera Mini/7.5.33361/31.1312; U; tr) Presto/2.8.119 Version/11.10
Opera/9.80 (Android; Opera Mini/7.5.33361/31.1325; U; tr) Presto/2.8.119 Version/11.10

Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329
Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 Twitter for iPhone

セキュリティ上の理由から、引き続きユーザー エージェントをチェックしたいと思います。しかし、このような変更をユーザーに拒否したくありません。

PHPサーバー側での適切な方法は何ですか?

(編集: Cookie の内容をソルトといくつかの確率変数で暗号化することに注意してください。したがって、Cookie の内容を推測するのは非常に困難です。しかし、Cookie を盗む人は、別の用途として自分自身を提示することができます。しかし、Cookie の盗用は別の問題です。しかし、セッション ID を持つ Cookie も盗まれる可能性がありますが、これは別の問題です)

4

2 に答える 2

0

私はこれをここに捨てるつもりです。ユーザー エージェントはセキュリティ対策としては不適切です。しかし、他の選択肢はあまりありません。そう!ユーザー エージェント文字列を取得するには...

$_SERVER['HTTP_USER_AGENT'];

暗号化して Cookie に設定すると、小さな変更が心配になります (ブラウザが変更または更新された場合にのみ発生するはずです)。この情報を取り除いて、OS、ハードウェア、ブラウザ ブランドなどの基本情報を使用することをお勧めします。これらの文字列の解析を容易にするために利用できる PHP ライブラリがあります。

本当に心配な場合は、これにユーザーの IP アドレスをソルトすることもできます。IPを取得できます...

$_SERVER['REMOTE_ADDR'];

ただし、これらの値はどちらも簡単に偽造でき、信頼できないことを忘れないでください。

于 2013-09-04T18:07:27.190 に答える