Привет всем, я неособо разбираюсь в безопасности функций пхп поетому прошу помочь.
№1
Код |
<? $page = isset($_GET['page'])?$_GET['page']:"general"; switch($x) { case "": if (file_exists('modules/main/$x.tpl')) { include("modules/main/$x.tpl"); } else { include("404.php"); } break; } ?> |
Код |
#RW On DirectoryIndex index.php RewriteEngine On RewriteRule ^index$ index.php # SEC RewriteCond %{HTTP_REFERER} (weight) [NC,OR] RewriteCond %{HTTP_REFERER} (drugs) [NC] RewriteRule .* - [F] |
Цитата (DeeKeiD @ 16.06.2009 - 17:25) |
№1 |
Цитата |
Пару советов нащёт POST,GET, include Какие ошибки обычно допускают начинающе(в плане безопасности) |
PHP |
$page = isset($_GET['page'])?$_GET['page']:"general"; |
PHP |
if (file_exists('modules/main/$x.tpl')) { |
Цитата (FatCat @ 16.06.2009 - 13:48) | ||
Что за огрызок кода? Совершенно непонятно, зачем создается переменная $page и откуда берется переменная $x - эти переменные являются важными для решения вопроса безопасности. |
Цитата (DeeKeiD @ 16.06.2009 - 15:15) |
и как сделать : что бы если index.php?x= допустим test (файла modules/test/test.tpl несуществует) он инклюдил 404.php? т.е не только для ?x=test а для всех ?x= которых несуществует. |
Цитата |
и каким образом будет происходить инклюд модулей без switch ? |
PHP |
$page = isset($_GET['page'])?$_GET['page']:"general"; |
Цитата (glock18 @ 16.06.2009 - 13:52) | ||
ооочень странный блок-switch. Вы осознаете, что блок
сработает только, если $x - пустая строка. Как думаете, у вас есть в папке modules/main файл .tpl? Очевидно, скрипт выдаст 404 ошибку. То есть подключит ваш 404.php. Подумайте над этим. |
PHP |
$page = isset($_GET['page'])?$_GET['page']:"general"; |
PHP |
$page = isset($_GET['page'])?$_GET['page']:"general"; |
Код |
$page = isset($_GET['page'])?$_GET['page']:"general"; if (file_exists("modules/main/$page.tpl")) { include("modules/main/$page.tpl"); } else { include("404.php"); } |
PHP |
$page = isset($_GET['page']) ? $_GET['page'] : main; |
PHP |
switch ($x) |
Цитата (DeeKeiD @ 17.06.2009 - 16:35) |
Необходимо: 1. если в ?x= прописано значение несуществующее в switch например: ?x=super_mega_poisk инклюдится 404.php |
PHP |
switch ($x) |
Цитата |
надеюсь я понятно обьяснил? |
PHP |
switch ($x) |
Цитата (Kuliev @ 17.06.2009 - 22:14) |
А если файла modules/files/files.tpl нету, то скрипт заругается... |
PHP |
default: |