1

UAのMD5とシードを使用してセッションをより安全にするために、次のコードがあります。

if (!isset($_SESSION['key']))
{
    $_SESSION['key']=md5($_SERVER['HTTP_USER_AGENT'] . $UA_SEED);
    $session_is_valid = TRUE;
}
else if($_SESSION['key'] != md5($_SERVER['HTTP_USER_AGENT'] . $UA_SEED))
{
    $session_is_valid = FALSE;
    exit;
}

コードは正常に機能しますが、IE9には独自のアジェンダがあります。URLを入力して自分のウェブサイトに直接アクセスすると、UAは次のように送信されます。

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) 

別のウェブサイトからのリンクを介してアクセスすると、UAは次のように送信されます

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

これに対する回避策はありますか?他のブラウザはそのようなシェナニガンを行いません。

PSこの追加された「セキュリティ」の形式は限られていることを理解していますが、何もないよりは何かが優れています。

4

2 に答える 2

0

ほとんどの場合、わずかに異なる方法で URL を入力しているため、IE が Web サイトのリストでその URL を見つけて、互換表示でレンダリングします。互換表示が必要でない限り、[ツール] > [互換表示設定] のリストから Web サイトを削除し、完全に無効にすることを検討してください。

于 2012-07-12T23:42:45.973 に答える