Jump to content
php.lv forumi

Par log failiem


Lynx

Recommended Posts

bzz, tu man pasaki -

Ja <?php exit; ?> pirmaja rindaa ir, kods vispar neizpildās
kurš kods? tas kas fgets taisa?

 

uztaisi playerlog() vidū

print $file;

print $username;

 

of coss $_GET['username'] jābūt nodefinētam iepriekš

 

arī preg_match izmantot lai nogalinatu lapu, nekā
- šito vispār nesaprotu
Link to comment
Share on other sites

bzz, tu man pasaki -  kurš kods? tas kas fgets taisa?

Jā tikai šis koda fragments neizpildās. Tas imho nozīmē ka tiko kā atveram failu izpildās exit; pirms vel tiek paspēts noskipot 1o līniju.
uztaisi playerlog() vidū

print $file;

print $username;

 

Ja es sapratu ko tu domā:

Ievadē tiek izvadīts: ./log_files/Lynx.php Lynx

Izvadē, pirms echo '<br />'.$line; Ja uztaisu print $_GET['username']; Izvadās Lynx, tas nozīmē ka neizpildās tikai lasīšanas daļa.

 

$_GET['username'] ir nodefinēts.

 

Par preg_match taisiju šādu variantu:

 

<?PHP if(preg_match("/Lynx.php/i", $_SERVER['PHP_SELF'])) die(); ?>

 

No interneta nolasīt nevar, caur admin paneli arī nezkapēc nevar.

Link to comment
Share on other sites

Hmm es nesaprotu, par ko tu nesaproti, kapēc man būtu kautkur japievieno šāda rindiņa kuru tu minēji?

 

Datu ievadē viss darbojas. Bet nav iespējams datus izvadīt caur admin paneli. Dati tiek glabāti php failos, jo serveris ir IIS 4.0 un nepieļauj .htaccess, lai nobloķētu pieeju piemēram txt failiem. Un struktūra kā izskatās ieraksti ir šāda:

 

<?PHP die(); ?>

2005-04-06 16:17:08 Action: Move From: 414 To: 415

2005-04-06 16:17:10 Action: Move From: 415 To: 515

 

Problēma ir tāda ka izvadot datus vajag noskipot 1o rindiņu, lai netiktu izpildīts die() un tādējādi nepieļautu datu nolasīšanu.

Link to comment
Share on other sites

Problēma ir tāda ka izvadot datus vajag noskipot 1o rindiņu, lai netiktu izpildīts die() un tādējādi nepieļautu datu nolasīšanu.

Nu jopcik vai tad failu var nolasīt tikai ar include()?!

No cita faila php kods var izpildīties tikai 3 gadījumos: include, require vai nolasīts un tad padots eval().

 

echo file_get_contents('tavsfails.php') un nekas nenomirs

ja nepatiik pirmaa rinda pie izvadiem tad echo implode('',array_shift(file('tavsfails.php')));

 

Ja logfaili sanaak milzoniigi > 1Mb, tad jālas ar fread vai fgets pa chunkiem kā jau iepriekš Venom dod piemēru ar fgets (noskipojam pirmo rindu un tad lasam līdz beigām un metam uz outputu).

 

No otras puses varbūt vienkāršāk ir palūgt webstervera adminam lai sakonfigo ka publiski log faili nav pieejami bet teiksim rakstās direktorijā ar autorizāciju. šādi diezgan muļķigi "hacki" sanāk :)

Link to comment
Share on other sites

Nu jopcik vai tad failu var nolasīt tikai ar include()?!

 

Include šajā gadijumā vispār netika izmantots. Visu laiku meiģināju Venom skriptu dabūt pie pareizas izpildes.

 

Vispār atrisinājums bija gaužām vienkārš un pašam kauns par savu stulbumu :)

Attiecigi es norādiju full path(http://) uz log faila atrašanās vietu, jo logi glabājās pāris soļus atpakaļ folderī. Njaa šitads čakars nelielas :D neprecizitātes dēļ.

Link to comment
Share on other sites

×
×
  • Create New...