Jak na kazdyho gumaka co mi chce pages hacknout?

Jde mi o to abych o kazdem uzivateli vedel, na ktere stranky se na webu dival.

dik za napad
hm, tak za prve
>>co mi chce pages hacknout
Neudělat fatální chybu v programování stránek
zvolit 100 místný heslo...
ne, ale tak minimálně 10 mísntý heslo...
>>Jde mi o to abych o kazdem uzivateli vedel, na ktere stranky se na webu dival.
Pokud nevymyslíš nějakej program spyware, tak máš smůlu...
Jestli chces mit prehled na jaky stranky ti lidi chodej, tak si to bud naprogramuj v PHP, nebo se zaregistruj na navrcholu.cz.
Ja osobne loguju kazdej pristup (kazdy stazeni kazdy stranky) ... cas, IP, SessionID, URL vcetne parametru, reffer, doby zpracovani skriptu, ... a muzes tam dat cokoli, co si myslis, ze by mohl vest k hacknuti tvoji stranky ...

... pokud bys byl obvzlast paranoidni, slo by asi logovat i seznam promenych predavanych GET, POST, COOKIES :)

Radek
Jak zjistujes dobu zpracovani skriptu?
Zkus PCsvět, někde to tam bylo, jinak stačí na začátek stránky dát
<?
$zac = time();
?>
Stránka
<?
$konec = time();
$rozdil = $konec - $zac ;

print "Načteno za $rozdil s";
?>

Možná je to blbost, ale já bych to asi udělal takhlens, nevím, nikdy jsem to nezkoušel, je to spíše teoretické...
hehe mno navrcholu vyuzivam, me jde spise o vec, ze chcu mi prehled o tom kdo mi dela nejaky prasecinky. Radku neco co mas ty to myslim, jak presne to delas?
Tohle je docela pekny:

<?
function getmicrotime() {
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

$time_start = getmicrotime();

for ($i=0; $i < 1000; $i++) {
//do nothing
}

$time_end = getmicrotime();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds";
?>

Znate jeste neco presnejsiho ??
> Znate jeste neco presnejsiho ??

V PHP ne ;~) ... pouzit jen funkci time() nema smysl, protoze udava cas s presnosti na vteriny a beh ROZUMNYHO skryptu je zpravidka kratsi :)

> jak presne to delas?

$gs_RemoteHost = gethostbyaddr($REMOTE_ADDR);

function gf_log_write($as_log, $as_message, $as_version="01")
{
global $gs_LogsDir, $gn_Rights, $ps_Auth;
$fhnd = FOpen ($gs_LogsDir.$as_log.".txt", "a");
FWrite ($fhnd, "$as_version | $gn_Rights | ".Date("d.m.Y H:i:s")." | $ps_Auth | $as_message \r\n");
FClose ($fhnd);
}

function gf_log_access()
{
global $REMOTE_ADDR, $REMOTE_PORT, $PHP_SELF, $QUERY_STRING, $HTTP_REFERER, $HTTP_USER_AGENT;
global $gt_PageBegin, $gt_PageEnd, $gt_BodyBegin, $gt_BodyEnd, $gs_RemoteHost;
$delta = round($gt_PageEnd - $gt_PageBegin,3);
$deltabody = round($gt_BodyEnd - $gt_BodyBegin,3);
$deltahead = round($gt_BodyBegin - $gt_PageBegin,3);
$deltaend = round($gt_PageEnd - $gt_BodyEnd,3);
gf_log_write("browse".date("Ym"), "$REMOTE_ADDR | $REMOTE_PORT | $gs_RemoteHost | $PHP_SELF?$QUERY_STRING | $HTTP_USER_AGENT | $delta | $deltabody | $deltahead | $deltaend | $HTTP_REFERER", "05");
}

function gf_log_error($as_category, $as_message)
{
global $REMOTE_ADDR, $REMOTE_PORT, $PHP_SELF, $HTTP_REFERER, $HTTP_USER_AGENT;
gf_log_write("errors".date("Ym"), "$as_category | $as_message | $REMOTE_ADDR | $REMOTE_PORT | $PHP_SELF | $HTTP_USER_AGENT", "01");
}

Jen na vysvetlenou ... datum souboru je odvozeno od datumu, aby soubory nebyli moc velky.

Radek
Ale docela dost tím spomaluješ načítání stránek!
Ale je to ucelny, inu ten zdrojak je peknej ale ty nazvy promenych sou humusoidni ale opravdu pekny du to kostnout
>Ale docela dost tím spomaluješ načítání stránek!

proc myslis? mas napad, jak to zoptimalizovat???

m.s.
tak ja sem to krute pastl do stranky a zadnej soubor se nevytvoril, jak to ?
Nejspis proto, ze jsi nenastavil globalni promenou $gs_LogsDir ...

$gs_LogsDir = './';

... nebo kamkoli jinam ;~)

Dal je tam jeste jedna promena $ps_Auth ... to je moje SessionID ... tak je ji potreba nahradit za tu, kterou pouzivas ty.

POZOR!!! Je tam bezpecnostni dira jak Brno :o) ... ten soubor logu je *.txt ... a loguje se do nej SessionID, prava a autentifikacni hash ... pokud si ten soubor nekdo zobrazi (coz zvladne i kazda lama :) ... muze ziskat administratorskou session absolutne bez namahy ...

Doporucuju do adresare, kde je log, pridat prislusny soubor .htaccess, ktery pristup odmitne nebo alespon zmenit koncovku na *.php a logovaci hlasky opratrit tagy <? /* ... */ ?>

Radek
>> (coz zvladne i kazda lama :)
Hm, bych neřekl, když neznáš zdroják... Tak to na tom serveru dost blbě najdeš (pokud autor neudělá něco že dá do root adresáře logs.log nebo logs.txt)

2martin: Ano, apache si dělá taky log;)). Akorát k němu není přístup, jinak já to loguju pouze přes nv tohle mě neláká... A jěště navíc bych to potom musel číst...
pres nv? co to je?
hele pridal sem tam tu promenou cos psal a stejne howno, zadnej soubor to nedela
www.nv.cz
jo tak navrcholu nj, ale tam se dozvis ip a odkud prisel a ne co ti navstevnik vyvadi
> Ale docela dost tím spomaluješ načítání stránek!

Jestli ti 0.003 sec prijde hodne :) ... tohle je prumerna rychlost zalogovani u me na lokale, je mi jasny, ze tady na WZ budou podminky trosku jiny, ale zas tak zasadne se to lisit nebude ... spis bych hadal, ze to bude rychlesji ... navic, zacal jsem si podle toho logu zpracovavat statistiku jak ktera operace dloho trva kvuli optimalizaci ... a jak se mi to jevi, casove nejnarocnejsi mi vychazi connect k DB :)

>> (coz zvladne i kazda lama :)
> Hm, bych neřekl, když neznáš zdroják...

Ale ja svoje zdrojaky bezne volne poustim ... a ne vzdycky mas naladu a cas se s tim prepisovat ... navic u vetsiny webu pouzivam strukturu stejnou a kdyz si navic nekam nainstaluju tu svoji "galerii", ktera ti dovoli prolejzat strukturu adresaru a nebo se ti nekde podari udelat nejakou jinou podobnou chybku ...

> inak já to loguju pouze přes nv

Taky pouzivam nv.cz ... ale tam je ta statistika uz sumarni a navic, firewall ti muze tohle volani potlacit ... taky tam nevidis "praci" robotu ... jasne ze ty logy neprochazim rucne, ale nalejvam je do DB a pak si z nich zpracovavam statistiky jaky potrebuju ... nv.cz ma myslim taky takovy nejaky moznosti, ale za ty se uz musi platit :)

> hele pridal sem tam tu promenou cos psal a stejne howno, zadnej soubor to nedela

Koukni se na zdrojaky ty moji "galerie" ... http://pogl.wz.cz/pages/sources/sources.php#galery ... pridal jsem tam i to logovani a jestli ti to ani ted nebude chodit, tak jsi nejspis ztracenej pripad :) ... mimochodem ... volal jsi funkci gf_log_access() ???

Radek
no ja proste pastl tvuj zdrojak a pridal tam tu promenou cos rikal a dal do do hotovy nejaky stranky...
jo a ten soubor mi nejde stahnout =[ nemas nejaky jiny link? V akci bych to raaad videl. Mohl by jsi kdyztak byt tak moc hodny a poslat mi to na email? pif@progamers.cz dekujuu
Proc ti to nejde stahnout ? ... co se stane ? ... nebo teda nestane ? :o)

Ode mne to jde v pohode ... Opera 6.01 ... IE6.0

Radek
stahuju pres dap a napise to -

file download of gallery.zip was not completed sucefully. Server has internal error.

Ale ty uz jsi mi to poslal moc dikkkkyyyyy. Hodnej radecek :o
> stahuju pres dap

S toudle vymozenosti jsem asi tak nejak nepocital ... je tam redirect, tak bude problem bude asi v tom ...

> Hodnej radecek :o

Tudel poznamku jsem nevidel ;~)

Radek