2011-08-03 27 views
1

私のファイル構造の例です。phpファイルへの直接アクセスの防止

/index.php 
/inc 
/inc/file1.php 
/inc/file2.php 
/inc/file3.php 
/search.php 

index.phpには、file1.php、file2.php、およびfile3.phpが含まれます。 そしてindex.phpだけでアクセスできるようにしたいと思います。

最も洗練されたソリューションは何ですか?

おかげ

答えて

7

は、ドキュメントルートの外にそれらを取得します。

/documentroot/index.php 
/inc/file1.php 
/inc/file2.php 
/inc/file3.php 

ので、全くそれらへの直接アクセスがありません。他のページを直接上記のコードにアクセスしているときに、あなたの他のページにあなたが<?php

if(!defined('RESTRICTED'))exit('No direct script access allowed!'); 

後にこれを入れ

define('RESTRICTED',1); 

:あなたはこのように定数を定義することができますはindex.phpで

+1

をdenieしたい、と '.htaccess'が許可されています'.htaccess'ファイルを'/inc'に 'Order allow、deny'と' Deny from all'という行を付けてください。 – Wrikken

2

RESTRICTEDが設定されていないと判断し、終了します。

1

.htaccessファイルを作成し、INCフォルダに

<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 

<Files *.php> 
order allow,deny 
deny from all 
</Files> 

またはファイルの先頭にこれを入れてそれを置くあなたがApacheの場合

if(strrchr($_SERVER['PHP_SELF'],'/')=='/file_name.php'){die;} // not good for ajax include 
関連する問題