Jump to content
php.lv forumi

Recommended Posts

Posted

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
Posted
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.

Posted

A es nesaprotu, kur ir problēma pielikt faila galā tādu rindiņu kā šī: " 2005-04-06 16:17:08 Action: Move From: 414 To: 415". Vai vienalga kur citur pielikt.

Posted

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.

Posted
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 :)

Posted
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ēļ.

×
×
  • Create New...