2013-11-20 3 views
0

В принципе, я в настоящее время находится в процессе разработки какой-либо формы Framework. Он будет иметь основной файл индекса, который будет управлять отображаемыми страницами, тогда include файлов на основе URL-адреса, который переписан с использованием .htaccess, поэтому мой .htaccess будет выглядеть примерно так.Включая файл через include в PHP

Options +FollowSymlinks -MultiViews 

AddType "text/html; charset=UTF-8" html 
AddType "text/plain; charset=UTF-8" txt 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    # if file not exists 
    RewriteCond %{REQUEST_FILENAME} !-f 

    # if dir not exists  
    RewriteCond %{REQUEST_FILENAME} !-d 

    # avoid 404s of missing assets in our script 
    RewriteCond %{REQUEST_URI} !^.*\.(jpe?g|png|gif|css|js)$ [NC] 

    # core framework url rewriting 
    RewriteRule^index.php [L] 
<IfModule mod_rewrite.c> 

Держа в виду, что у меня есть эта линия RewriteRule^index.php [L] я затем использовать следующий в моем index.php

define("PAGES", $_SERVER['DOCUMENT_ROOT']."/pages"); 

$uri = explode("/",substr($_SERVER['REQUEST_URI'],1)); 
if((isset($uri[0])) && ($uri[0]!="")) {$page = $uri[0];} else {$page = "login";} 

if(is_file(PAGES."/$page/$page.php")) { 
    include(PAGES."/$page/$page.php"); 
} else { 
    include(PAGES."/error_pages/404.php"); 
} 

Будет ли это считаться достаточно безопасным? или это обеспечит возможность совершения какой-либо операции?

+0

Это похоже на многие рамки CMS, такие как оператор WP на аналогичной схеме. – anubhava

+0

Спасибо за этот комментарий. Всегда лучше получить другую точку зрения разработчиков – Curtis

ответ

0

Лучшее решение заключается в использовании пространств имен и функций автозагрузки PHP> = 5.3 Ваше решение будет безопасным до тех пор, пока пользователи не смогут создавать свои собственные файлы в DOCUMENT_ROOT, и вы должны избегать возможности включения файлов из DOCUMENT_ROOT.

Смежные вопросы