Autor | Zpráva | ||
---|---|---|---|
had Profil * |
#1 · Zasláno: 22. 1. 2009, 16:25:07
ahoj,
mám malý problém. nedávno jsem spustil nový stránky do provozu a začala mě napadat ip adresa 66.249.xxx.xxx s těmito hláškami. Prostě jsem ji v .htaccess bloknul (denny) a po pár dnech přestala. Když skončila, objevila se další, pro změnu velmi podobná (obě ze stejného místa na zemi), a tak jsem zakázal už celý rozsah 66.249.xxx.xxx Proč mi to pořád vypisuje tuhle chybovou hlášku? [Thu Jan 22 15:32:25 2009] [error] [client 66.249.xxx.xxx] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /home/vsftp/_server_/_server_/conn.php on line 3 ...na řádku č. 3 v souboru conn.php je session_start(). U jiných IP adres tenhle problém není, jenom u tohohle rozsahu 66.249.xxx.xxx. Proč to tak je? Jsou to roboti, co mě napadá server? Jakým způsobem můžou vyvolat tuhle hlášku? Já myslel, že PHP funkce session_start() si dokáže vygenerovat náhodný řetezce sama a bezpečně... nebo to je nějaký druh útoku (třeba session_fixation?) |
||
bohyn Profil |
#2 · Zasláno: 22. 1. 2009, 16:29:03
had
session_start() si bere SID (Session ID) z cookie, pokud cookie neexistuje pak teprve vytvori novy SID. Pravdepodbne se jednalo o nejaky utok a podvrzene SID. |
||
had Profil * |
#3 · Zasláno: 22. 1. 2009, 17:46:44
co se proti tomu nechá dělat? samozřejmě krom blokace...?
po přihlášení mám ochranu session_regenerate_id(), ale to bych musel dát ještě před session_start() a to přece nejde, ne? nebo znovu přegenerovat cookie před session_start() ? to by mohlo pomoct, ne? díky |
||
AM Profil * |
#4 · Zasláno: 22. 1. 2009, 18:44:32
Myslím, že ti nic nehrozí, možná se to pokouší útočit na nějakou slabinu v zabezpečení serveru, ale kdybys ji tam měl, asi už bys to poznal. Můžeš udělat třeba tohle:
if (ereg('[^a-zA-Z0-9\\-]', @$_COOKIE['PHPSESSID'])){ //nejaky osetrujici kod, muzes treba smazat phpsessid nebo cely skript ukoncit normalne die(); } v praxi jsem to nezkoušel, ale je to tak jednoduché, že na tom snad nemá co nefungovat. Jen pro vysvětlení, podmínka ověří, jestli proměnná PHPSESSID neobsahuje jiné znaky, než číslice, písmena a pomlčku (což je obsahem chybové hlášky, kterou jsi poslal). |
||
had Profil * |
#5 · Zasláno: 22. 1. 2009, 21:59:11
díky kluci. ;) poučen pro příští redakční systém ;)
|
||
Časová prodleva: 16 let
|
0