Има ли опасност

stuser

Registered
пробвам един код за защита от хакване
if (
ereg('txt?cmd',$_SERVER['REQUEST_URI']) ||
ereg('r57.txt?',$_SERVER['REQUEST_URI']) ||
........

с този код примерно ако се напише в url-то пример: index.php?page=r57.txt?
няма да зареди адреса
има ли някаква опасност от този код за него трябва ли защита

само mи кажете има ли опасност в това което съм дал друго не ме интересува
:)
 
Така както си го направил няма да може да се вкара такъв файл, но ако си защитил както трябва кода ти няма да има нужда от това.

Например:

Грешен вариант:
Код:
<?PHP
$page = $_GET['page'];
include($page);
?>

Така при url site.com?page=http://..../evilfile.txt

ще се зареди файлът, който ти не искаш.

Ето правилният вариант:

Код:
<?PHP
$page = $_GET['page'];
$path = 'pages';
$spage = $page.'/'.$page.'.php';
if(file_exists($spage)){
include($spage);
}
else {
die("Page not found");
}
?>

При вторият начин взима страницата, проверява дали съществува в папка pages и ако съществува я вкарва в сайта.

Ето аз как го правя:

Код:
<?PHP
$pages = array('index','other');
$page = $_GET['page'];
		if(in_array($page,$pages)){
			include('pages/'.$page.'.php');
		}
		else {
			die("Page not found");
		}
?>

Така вкарвам позволените за include страници в един масив и ако страницата е различна не я показва.


Надявам се да си разбрал.
 

Back
Горе