Autor | Zpráva | ||
---|---|---|---|
Radim24 Profil |
#1 · Zasláno: 18. 6. 2009, 11:08:48
Právě jsem sestavil kód, který má za cíl odstranit ze souboru, ze kterého je spouštěn, kód který tam vložil vir <iframe>kód</iframe>.
Problém je v tom, že se přitom odstraní také pravidlo regulárního výrazu, takže script lze úuspěšně použít jenom jednou. Potřeboval bych to dořešit a dodat tam, že reg. výraz nesmí předcházet a následovat závorky { } (označení fnc) Mátě někdo nějaký nápad? <?php echo "Testování index.php kvůli napadení stránek virem. Vyčkejte.<BR>\n"; echo "<iframe>Testování index.php kvůli napadení stránek virem. Vyčkejte.</iframe>\n\n"; function repear($file) { echo "Spouštím čistič and die()<BR>\n"; $fd = fopen ($file, "r"); $contents = fread ($fd, filesize ($file)); fclose ($fd); $search = array ("'<iframe[^>]*?>.*?</iframe>'si", // Strip out enemy code ); $replace = array ("" ); $write = preg_replace ($search, $replace, $contents); $fp=fopen($file, "w"); fwrite($fp,$write); fclose($fp); } $file = "index.php"; if ( filesize($file)>600 ) repear($file); header ("index.html"); ?> |
||
tiso Profil |
#2 · Zasláno: 18. 6. 2009, 11:14:58
Radim24 - odstráň príčinu zavírovania webu, nie až jeho dôsledok...
A čo sa nápadu týka, tak ti stačí použiť spájanie reťazcov pre regulárny výraz: $search = array ("'<if"."rame[^>]*?>.*?</iframe>'si"); |
||
Radim24 Profil |
#3 · Zasláno: 18. 6. 2009, 11:20:06 · Upravil/a: Radim24
tiso
Jasně, odstranění viru je řešením, ale je to pro případ že by se znovu zaviroval počítač. Je to na mých stránkách, kde kód bortí výstup, a tím kazí vzhled stránek. proto v případě útoku chci okamžité řešení. Tomu nerozumím (můžeš mi to vysvětlit o co tam jde?) ale přišel jsem na svoje řešení: '<iframe[^>]*?>.*?</iframe>(?!\()'si Nesmí být následován závorkou... |
||
Časová prodleva: 15 let
|
0