2009-09-22 6 views
8

最近、私は私のエラーログに(一日あたり1を、私は一日あたり40Kの訪問者を持っている)、これを見ている:それは皆のために働いているのでセッションハイジャックまたは攻撃?

[22-Sep-2009 21:13:52] PHP Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /var/my_files/class.session.php on line 67 
[22-Sep-2009 21:13:52] PHP Warning: Unknown: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0 
[22-Sep-2009 21:13:52] PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct() in Unknown on line 0 

これは設定の問題ではありません。

私はすでにこれを持っているphp.iniの変更:

session.use_only_cookies = 1 
session.use_trans_sid = 0 

は、私は認識していない午前のセッションハイジャックや攻撃の種類疑い(私はparanoだが;))。

あなたは何ができるか考えていますか?セキュリティを改善し、これを避けるために私は何ができますか?

答えて

18

は、このクライアントは、PHPSESSIDクッキーの内容を変更したことです。通常、SessionIDは "62bf75fb02922cf9c83fb3521255b4ab"(16進)のようなものです

ただし、ユーザーはいくつかのツールを使用してCookieを変更している可能性があります。この変更はクライアントサイドで行われるため、ウェブサイトやサーバーに影響はありません(これらのエラーの発生を除く)。このようなエラーが発生した場合、セッションIDを変更してクライアント上のIDを置き換えることができます。

参照ソリューション:

$ok = @session_start(); 
if(!$ok){ 
    session_regenerate_id(true); // replace the Session ID 
    session_start(); // restart the session (since previous start failed) 
} 

を使用すると、PHPのセッションクッキーを介してサーバ上にファイルを置き換えるか、書き込むことはできません、覚えておいてください。セッションが正常に開始された場合にのみ、PHPは現在のセッションに関するセッションファイルを書き込み、それをtmpフォルダに保存します。ファイルが古くなると、ファイルは削除されます。

+0

パーフェクト!!!!どうもありがとう!!! :) – Toto

+0

全く問題ありません) – mauris

1

セッションクッキーに不正なセッションIDがあり、エラーが発生している可能性があります。

誰かがセッションハイジャックに無効なセッションIDを使用する方法がわかりません。

あなたはエラーを再現する場合:おそらくここで行われる何

<?php 
error_reporting(E_ALL); 
session_start(); 
session_id ("$"); 
+0

人は何かを書こうとしている/サーバー上のファイルを置き換えようとしていますか? – Toto

+1

いいえ、心配しないでください – mauris

+0

ありがとうMauris。 :) – Toto

3

これはおそらくスパムロボットによって引き起こされます。私は多くのスパムボットがGETパラメータとしてセッションIDを送信されているのを見て、SMTP注入や電子メールの送信に使用しようとします。私はログからどこかに証拠を見つけようとしますが、私はそれが少なくとも12ダースのサイトで私に起こったことを知っています。私がそれを見たとき、GETは次のようになりました:[email protected]\n\subject:blah blah blah\n\nspam email here etc...