Parašė BloodKiller· 2007 Bal. 14 00:04:08
#5
Tarnautojas parašė:
Tai atsiranda trumpam rišis su SQL DB, tai dingsta, nors nusišauk, nesuprantu kas darosi.
Siulyciau padaryti toki bajeriuka, kaip leidima vykdyti uzklausa per tam tikra laiko intervala. Tarkime intervalas lygus 20s. Jeigu kas nors sugalvoja pavaryti tokia ataka, galime vykdyti nukreipima i tuscia index.html faila. :D Va pavyzdys. :)
<?php
/*CREATE TABLE log (
id BIGINT (20) NOT NULL AUTO_INCREMENT,
ip VARCHAR (20) NOT NULL,
time BIGINT (20) NOT NULL,
PRIMARY KEY (id)
);*/
//Irasome duomenis i loga
dbquery("INSERT INTO log (ip,time) VALUES ('".$_SERVER['REMOTE_ADDR']."','".(time()+20)."');");
//Istraukiame duomenis is logo
$result = dbquery("SELECT * FROM log WHERE ip = '".$_SERVER['REMOTE_ADDR']."'");
//Vykdome salyga ir tikriname ar kartais kas nors nesugalvojo uzkrauti puslapio anksciau nei per 20s
if (!dbrows($result) || dbcount("(*)","log","WHERE ip = '".$_SERVER['REMOTE_ADDR']."' AND sec > ".time())) fallback("index.html");
?>
Nuo labai galingu ataku, kuriomis yra uzlauziamas web serveris, tokiais skriptais neapsiginsi, taciau
MySQL nuo paprastu ataku apsaugoti tikrai galima, jeigu tik zinosi kaip panaudoti visa tai. :)
Redagavo BloodKiller· 2007 Bal. 14 00:04:28