View previous topic :: View next topic |
Author |
Message |
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 15.02.2007 02:16 Post subject: htaccess bilježenje |
|
|
cao. evo molio bi dobru dušicu da mi objasni da li je moguće ako sam zaštitio web sa htaccess-om te dao nekim korisnicima passworde da se nekako bilježi tko se kada ulogirao. tipa kad se korisnik bobo logira da to neka skriptica zabiljezi. thnx unaprijed |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 15.02.2007 11:13 Post subject: |
|
|
Hm. Nije lako, jedino možda analiziranjem Apache server loga ... ako uopće Apache bilježi takve stvari |
|
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 15.02.2007 16:48 Post subject: |
|
|
Sulien wrote: | Hm. Nije lako, jedino možda analiziranjem Apache server loga ... ako uopće Apache bilježi takve stvari |
hm. jel neko mozda zna. aj bitno mi. |
|
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 15.02.2007 21:33 Post subject: |
|
|
u apache access.log-u pisu te informacije...
nesto tipa:
Code: | 12.23.45.43 - roy [21/Sep/2005:15:19:00 +0200] "GET ch13_01.htm HTTP/1.1" 200 11932 "http://foo.bar/index.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) |
sto zapravo znaci da je user roy pristupio resursu ch13_01.htm, a imas i vrijeme, i IP...
ako hoces vidjeti kad se prvi put ulogirao, morati ces malo parsati log, i naci prvu liniju u kojoj se pojavljuje, a recimo unutar istog dana, ili koja ti vec frekvencija igra ulogu...
Ovisno od toga sto ti treba dalje mozes recimo:
- dohvatiti u nekom vremenskom intervalu listu svih usera koji se mogu ulogirati, i provjeriti u logovima da li se (i ako je, kada prvi, a kada zadnji put) svaki od tih mogucih usera pojavio u logovima i izgenerirati nekakav reportic...
- jednom dnevno/tjedno/mjesecno/kako_ti_vec_pase proparsati access log i izbaciti van samo one requeste koji pokazju prvi put unutar svakog dana (recimo) kada je neki user pristupio nekom sadrzaju
- platiti nekome nešto da ti napise komad kôda koji ce napraviti to sto ti vec treba, samo ga pointas na ovaj topic za specse : ) |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 15.02.2007 22:31 Post subject: |
|
|
mozes pokusati logirati te podatke nekako
http://hr.php.net/features.http-auth
Code: | echo $_SERVER['REMOTE_USER']; |
ti ispise usera koji je ulogiran...
samo moras nekako hvatati kad je "prvi put" dosao na stranicu...recimo ako ti svi ulaze na index.php onda
- u index.php: appendaj username i time() u neku datoteku
- redirectaj na index2.php |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 15.02.2007 22:34 Post subject: |
|
|
zytzagoo wrote: | Ovisno od toga sto ti treba dalje mozes recimo:
- dohvatiti u nekom vremenskom intervalu listu svih usera koji se mogu ulogirati, i provjeriti u logovima da li se (i ako je, kada prvi, a kada zadnji put) svaki od tih mogucih usera pojavio u logovima i izgenerirati nekakav reportic...
- jednom dnevno/tjedno/mjesecno/kako_ti_vec_pase proparsati access log i izbaciti van samo one requeste koji pokazju prvi put unutar svakog dana (recimo) kada je neki user pristupio nekom sadrzaju
- platiti nekome nešto da ti napise komad kôda koji ce napraviti to sto ti vec treba, samo ga pointas na ovaj topic za specse : ) |
moj frend (onaj s kojim smo bili na cugi sta jebe po linuxu) u shellu to grep-a, cat-a i povadi sta mu treba od podataka |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 16.02.2007 01:50 Post subject: |
|
|
zytzagoo wrote: |
- platiti nekome nešto da ti napise komad kôda koji ce napraviti to sto ti vec treba, samo ga pointas na ovaj topic za specse : ) |
a koliko bi tako neki komad koda dosao da mi neka dobra dusa napravi? |
|
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 16.02.2007 04:14 Post subject: |
|
|
smoke wrote: | a koliko bi tako neki komad koda dosao da mi neka dobra dusa napravi? |
evo ovako probaj, pa mi reci ako ti to valja
index.php
Code: | <?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: index2.php');
die;
?> |
index2.php
- ono sto ti je prije bilo u index.php, dakle naslovna stranica tvoje aplikacije.
varijablu $file podesi tako da pokazuje na fajl koji se nalazi u folderu koji ima dozvole za pisanje. |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 16.02.2007 19:51 Post subject: |
|
|
carr wrote: | smoke wrote: | a koliko bi tako neki komad koda dosao da mi neka dobra dusa napravi? |
evo ovako probaj, pa mi reci ako ti to valja
index.php
Code: | <?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: index2.php');
die;
?> |
index2.php
- ono sto ti je prije bilo u index.php, dakle naslovna stranica tvoje aplikacije.
varijablu $file podesi tako da pokazuje na fajl koji se nalazi u folderu koji ima dozvole za pisanje. |
poslao sam ti pm. nije mi bas jasno di sta postaviti :zbunj: |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 16.02.2007 20:06 Post subject: |
|
|
ouch help vampire
sretno care |
|
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 16.02.2007 20:32 Post subject: |
|
|
mislim da sam skuzio. index stranica ostaje kako jest osim sto tamo imam gumb "login" koji umjesto da redirecta na ../secured/home.html promijenim da ide na ../secured/index.php
u taj isti index.php upisem kod
<?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: home.html');
die;
?>
te u ../secured/ stavim file log.txt koji promjenim u 777
e da /secured/ folder je zasticen htacessom
ako je to to onda sam skuzio....
ali javlja mi
Fatal error: Call to undefined function: file_put_contents() in /home/mgostimir/public_html/secured/index.php on line 5 |
|
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 16.02.2007 20:47 Post subject: |
|
|
smoke wrote: | mislim da sam skuzio. index stranica ostaje kako jest osim sto tamo imam gumb "login" koji umjesto da redirecta na ../secured/home.html promijenim da ide na ../secured/index.php
u taj isti index.php upisem kod
<?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: home.html');
die;
?>
te u ../secured/ stavim file log.txt koji promjenim u 777
e da /secured/ folder je zasticen htacessom
ako je to to onda sam skuzio....
|
da, to je to, upravo sam ti to napisao na pm
Quote: |
ali javlja mi
Fatal error: Call to undefined function: file_put_contents() in /home/mgostimir/public_html/secured/index.php on line 5 |
nema php5 pa ti ne radi funkcija.
evo ti funkciju koju samo ubaci na kraj index.php
Code: | function file_put_contents1($filename, $data){
$handle = fopen($filename, 'w');
fwrite($handle, $data);
fclose($handle);
} |
davno sam ju koristio, trebala bit raditi |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 16.02.2007 21:01 Post subject: |
|
|
jos uvjek javlja istu gresku. ako /secured/ folder stavim na 777 koja poanta passworda kad svako moze onda uc.
index.php koji je u /secured/ folderu ide:
<?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: home.html');
die;
?>
function file_put_contents1($filename, $data){
$handle = fopen($filename, 'w');
fwrite($handle, $data);
fclose($handle);
}
ili? |
|
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 16.02.2007 21:56 Post subject: |
|
|
smoke wrote: | jos uvjek javlja istu gresku. ako /secured/ folder stavim na 777 koja poanta passworda kad svako moze onda uc.
index.php koji je u /secured/ folderu ide:
<?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: home.html');
die;
?>
function file_put_contents1($filename, $data){
$handle = fopen($filename, 'w');
fwrite($handle, $data);
fclose($handle);
}
ili? |
ne.
Code: |
<?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= $_SERVER['REMOTE_USER'] . "; " . date('d.m.Y. H:i', time()) . "\n";
file_put_contents($file, $log);
header('Location: home.html');
die;
function file_put_contents($filename, $data){
$handle = fopen($filename, 'w');
fwrite($handle, $data);
fclose($handle);
}
?> |
file_put_contents je PHP funkcija, i zato mora duci unutar <?php, ?> tagova.
glede chmoda, nemoras na 777, dovoljno da je permission takav da skripta moze pisati po folderu, neznam koji je to permission, nadji na netu ili isprobaj. |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 17.02.2007 11:44 Post subject: |
|
|
heureka. radi. bravo bravo. odlicno hvala puno. imam sada jos jedno pitanje, da li je moguce s istom tom skriptom i kako prikazati ip adresu mozda? ili sta je sve moguce ispisati
sudeci prema zytzagoo-vom postu:
zytzagoo wrote: |
u apache access.log-u pisu te informacije...
nesto tipa:
Code: | 12.23.45.43 - roy [21/Sep/2005:15:19:00 +0200] "GET ch13_01.htm HTTP/1.1" 200 11932 "http://foo.bar/index.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) |
|
moze se dosta toga. ili? |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 17.02.2007 14:59 Post subject: |
|
|
Ako si se već odlučio za PHP rješenje onda se okani log file-a. Evo kako možeš dohvatiti nečiji IP:
Code: | function ip($toLong = false){
//Specific case, HTTP_CLIENT_IP is set
if(isset($_SERVER['CLIENT_IP'])) $ip = $_SERVER['CLIENT_IP'];
//Proxy filter
else if(isset($_SERVER['X_FORWARDED_FOR'])){
$ips = preg_split('/,\s*/', $_SERVER['X_FORWARDED_FOR'], -1, PREG_SPLIT_NO_EMPTY);
//Get all ips in list and return the first non private ip
foreach($ips as $ip){
//ipv4 and ipv6 compliant
if(preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $ip) || strstr($ip, ':')!==false){
$long = sprintf('%u',ip2long($ip));
/* RFC 1918 check for VPN IP address: 10/8, 172.16/12 [172.16.0.0 - 172.31.255.255], 192.168/16 */
//Add localhost for special case
if(!(
strpos($ip, '10') === 0
|| strpos($ip, '192.168') === 0
|| $ip == '127.0.0.1'
)
&& ($long < 2886729728 || $long > 2887778303) ) break;
}
}
}
else $ip = @$_SERVER['REMOTE_ADDR'];
return $toLong ? (isset($long) ? $long : sprintf('%u',ip2long($ip))) : $ip;
} |
figure it out kako ubaciti tu informaciju u log.txt kojeg pišeš |
|
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 18.02.2007 13:03 Post subject: |
|
|
evo rijesio metodom probaj pa sta bude
<?php
$file = 'log.txt';
$log = @file_get_contents($file);
$log.= "KORISNIK: ";
$log.= $_SERVER['REMOTE_USER'] . " VRIJEME: " . date('d.m.Y. H:i', time()) . " ";
$log.= "IP ADRESA: ";
$log.= $domain = GetHostByName($REMOTE_ADDR);
$log.= "\n-------------------------------------------------------------------------------\n";
file_put_contents($file, $log);
header('Location: home.html');
die;
function file_put_contents($filename, $data){
$handle = fopen($filename, 'w');
fwrite($handle, $data);
fclose($handle);
}
?>
koja je razlika izmedju ovih naredbi:
$IP = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
$proxy = $HTTP_SERVER_VARS["REMOTE_ADDR"];
$host = @gethostbyaddr($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]);
$IP = getenv("REMOTE_ADDR");
$domain = GetHostByName($REMOTE_ADDR);
i da ne nabrajam, svaka radi ali nekuzim primjenu svake i da li je ova koju sam ja koristio dobra za ovo sto ja zelim |
_________________ Feel the pain, feel the joy, of a man who was never a boy. |
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 18.02.2007 15:45 Post subject: |
|
|
'REMOTE_ADDR' često nije prava adresa |
|
|
Back to top |
|
|
smoke
Joined: 14 Feb 2007 Posts: 9
|
Posted: 20.02.2007 19:08 Post subject: |
|
|
Sulien wrote: | 'REMOTE_ADDR' često nije prava adresa |
koju naredbu da onda koristim? |
_________________ Feel the pain, feel the joy, of a man who was never a boy. |
|
Back to top |
|
|
ogy
Joined: 22 Feb 2007 Posts: 2
|
Posted: 23.02.2007 20:24 Post subject: |
|
|
Ako sam dobro shavatio treba vidjeti tko se ulogirao...Možda da nešto ovakovo ubacimo u index.php
Code: |
...
$h = getallheaders();
if (isset ($h['Authorization']))
$auth_hdr_val = $h['Authorization'];
else
die('You do not have permission to see this pages.!');
if ($auth_hdr_val != '') {
$encoded_cred = substr ($auth_hdr_val, 6);
$decoded_cred = base64_decode ($encoded_cred);
list ($user, $user_pass) = explode (':', $decoded_cred);
$user = strtoupper($user);
}
else
die('You do not have permission to see this pages.!');
...
|
Sada bi varijabla $user trebala sadrzavati user name, a $user_pass naravno password. |
|
|
Back to top |
|
|
|