Zpět na seznam článků     Zpět na článek

Komentáře ke článku

 
 
 BBCode
Zedna | E-mail | Website9.2.2012 11:21
vážně se jde bránit proti DDoS útokům? jednou mi "kámoši" z turecka shodili web(i s celým hostingem) pomocí 2000 přístupů/vteřinu. napsal jsem si tehdy script na limitování počtu přístupů pomocí php+htaccess


$ip = $_SERVER['REMOTE_ADDR'];
$limit = 60;
$limitspojeni = 100;

@$spojeni = mysql_connect('server','jmeno','heslo') OR
die ('<p>Nepodařilo se připojit k serveru</p>');
// print '<p>Podařilo se připojit k serveru</p>';

@mysql_select_db('databaze',$spojeni) OR
die ('<p>Nepodařilo se připojit k databazi</p>');
// print '<p>Podařilo se připojit k databazi</p>';

$result = mysql_query("SELECT 1 FROM limiter WHERE ip = '$ip' AND cas > now() - INTERVAL $limit SECOND");
if (mysql_num_rows($result)==0)
mysql_query("INSERT INTO limiter (ip,cas) VALUES ('$ip',now())",$spojeni);

$result_celkem = mysql_query("SELECT COUNT(*) FROM limiter",$spojeni);
$pocet_celkem=mysql_result($result_celkem,0);

$result_minuta = mysql_query("SELECT COUNT(*) FROM limiter WHERE cas > now() - INTERVAL 1 MINUTE",$spojeni);
$pocet_minuta=mysql_result($result_minuta,0);

if ($pocet_minuta > $limitspojeni){
// echo 'nastalo přetížení - vypínám';
$htaccess = fopen('.htaccess', 'a'); // otevře soubor pro zápis na konci
fwrite($htaccess, 'deny from all'); // zapíše 'deny from all' all lze nahradit za IP adresu
fwrite($htaccess, "\n"); // zapíše 'deny from all' all lze nahradit za IP adresu
fwrite($htaccess, 'ErrorDocument 403 /403.html'); // zapíše chybovou hlášku
fclose($htaccess);
};

mysql_close($spojeni);
cURLy bOi | 94.143.171.*26.5.2010 22:29
novy total commander jiz disponuje tzv. master password, kterym zasifrujete vsechna hesla a toto heslo je pote nutno zadat pri pripojovani k ftp (obvykle ovsem jen jednou za session).
v6ak | E-mail | Website26.4.2010 14:37
Jo, třeba instrukce BRK o tom celkem vypovídá. V Javě by pravděpodobně byla použita instrukce goto_w. Naopak složitější by bylo vymyslet jak správně naložit se side effecty typu foo($f++, $f++), ale i tady mám v hlavě nástin řešení lepšího než bezhlavé používání pomocných proměnných. Ale možná mi bližší studium specifikace bytecode pomůže s ještě lepším řešením.

Disassembler již existuje: [link]
prc | 213.211.51.*26.4.2010 7:05
Není důvod bytecode "dekompilovat", opkódy zend vm jsou trochu nekonzistentní, ale přímo odpovídají jednoduché struktuře jazyka a optimalizace je prakticky nulová, takže se i dump snadno čte a takový "disassembler" napíše každá trubka.
v6ak | E-mail | Website23.4.2010 15:42
Ou, SRY za doublepost, ale toto je ještě zajímavější: [link]
v6ak | E-mail | Website23.4.2010 15:41
K dekompilaci: Našel jsem [link] , podle tohoto a trošky Googlení by mohl jít postavit decompiler. Jinak opcodes jsou v srm_oparray.c.
v6ak | E-mail | Website23.4.2010 13:35
K anketě: Ano, co do rizika je to mnohem méně závažné, ale i tak bych preferoval moji variantu.
K whitelistu: Záleží, jak je to udělané. Například pokud budou všechny controllery (případně presentery nebo jiné includované soubory) v jednom speciálním podadresáři, pak v tom nevidím problém.
Emkei | E-mail | Website | PGP23.4.2010 10:45
v6ak: to ano, ale na odkaz uz musi nekdo kliknout, tam to neni automaticky pri nacteni stranky a po navsteve linku je vsem jasne, k cemu doslo, dlouho by tam tedy pravdepodobne nevydrzel.

jeste k include: ten whitelist znaku by prave nebylo snadne nasadit kvuli adresarum, kam smeruje upload (leda bych mel v nazvu upload slozek treba znak 'x', ktery by nebyl uveden na whitelistu, ale to mi prilis elegantni neprijde).
v6ak | E-mail | Website23.4.2010 7:22
Ještě jedna poznámka k anketám: podobný problém jako u obrázků může nastat u odkazů. Tam se to už hůře řeší ukládáním... :D
Emkei | E-mail | Website | PGP22.4.2010 20:42
hledat se mi to take nechce, ale jinak diky za prinosne komentare...

Stránky: 1 2 3 4