2010-02-08 53 views
2

我的index.php简单的安全问题:PHP包括

include 'class.php'; 
$x = new class; 
include $_GET['page'].'.php'; //checks if isset file_exists and in_array of valid file names before including; 

我要确保被列入不能直接访问该页面的样品。以下是我在index.php中包含的文件的第一行代码上的一些代码示例。

我试图:(如果没有被包括的index.php模具内)

if($_SERVER['SCRIPT_NAME']!='/index.php') die; 

和(如果这是在索引中定义的类不设置模具);

if(!isset($x)) die; 

什么是你最喜欢的方式来使页面被包括在PHP无法访问时直接查看?

回答

4

define()defined()

或者只是将它们放在文档根目录之外。

+0

是否较弱,较强或类似于检查它是否包含在其中的文件中是否存在变量? – Mickey

+0

它更强大,因为在某些(不可否​​认的)条件下,可以通过将变量添加到查询字符串来设置变量。 –

+0

即使全局关闭? – Mickey

2
if($_SERVER['SCRIPT_FILENAME'] == __FILE__) { 
    die("Go Away"); 
} 

对不起,更新它是正确的。

+0

是否有可能欺骗任何两个变量? – Mickey

+0

老兄你失败..学习如何阅读。 – Mickey

+0

我有哪个大规模的漏洞?实际上,这只是一种方式,我认为这只是其中一种“抛出某些方法”类型的问题。 – Anthony