2009-09-22 2 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

. 일반적으로 SessionID는 "62bf75fb02922cf9c83fb3521255b4ab"(16 진수)입니다.

그러나 사용자가 일부 도구를 사용하여 쿠키를 수정했을 수 있습니다. 이렇게하면 웹 사이트와 서버에 해를 끼치 지 않습니다. 왜냐하면이 수정은 클라이언트 쪽에서 이루어지기 때문에 서버에 영향을 미치지 않습니다 (오류를 생성하는 것을 제외하고). 할 수있는 일은 이러한 오류가 발생하면 세션 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를 사용하는 방법을 알 수 없습니다.

오류를 재현하려면 다음

아마 여기 일이 클라이언트가 PHPSESSID 쿠키의 내용을 변경한다는 것입니다 무엇
<?php 
error_reporting(E_ALL); 
session_start(); 
session_id ("$"); 
+0

서버에 파일을 쓰거나 바꿀 사람이 있습니까? – Toto

+1

아니 걱정하지 마십시오 – mauris

+0

Mauris에게 감사드립니다. :) – Toto

3

이것은 대부분 스팸봇 때문에 발생합니다. 나는 많은 스팸봇이 세션 ID를 GET 매개 변수로 보내어 SMTP 주입이나 이메일 전송을 시도하는 것을 보았다. 내 기록에서 어딘가에서 증거를 찾으려고 노력할 것입니다.하지만 적어도 12 개 사이트에서 저에게 일어난 일을 알고 있습니다. 내가 그것을 보았을 때, GET vars는 다음과 같이 보였습니다. [email protected]\n\subject:blah blah blah\n\nspam email here etc...