阻止PHP打开文档上方的文档

时间:2013-01-14 00:00:19

标签: php permissions document-root

希望有人可以对此有所了解。

我的php脚本当前可以使用相对路径打开文档根目录上的文件,例如require_once(../../passowrds.php);

1)无论如何都要强制在文档根目录上面打开绝对路径?

2)访问文档根目录上方最安全的文件是什么?

提前致谢

2 个答案:

答案 0 :(得分:-1)

  

无论如何都要强制在文档根目录上面打开绝对路径吗?

我将此解释为“是否可以通过相对路径阻止上层docroot访问?”。答案是:不是我所知道的,没有手动验证路径字符串(寻找过多的“......”等)

  

访问文档根目录上方最安全的文件是什么?

这取决于你对“最安全”的定义;您可能会遇到什么问题?

然而,一个好的开始是验证控制它的任何用户输入,而不是简单地做例如: require_once($_GET["file"])

答案 1 :(得分:-1)

写入 $ a ='samplevalue'; 中的require文件的最安全方法,以及写入中passowrds.php的顶部; if($ a!='samplevalue'){header('Location:http://www.example.com/'); }

passowrds.php:

if($r_key != 'a23b24c25samplekey' or empty($r_key)){ header('Location: http://www.example.com/'); exit(); } // r_key not equal a23b24c25samplekey or empty forward main page
bla.. bla.. bla..

sample.php:

  $r_key = 'a23b24c25samplekey';
  require_once(../../passowrds.php);

并且可以用于相对路径;

   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/yourfolder/passowrwds.php";
   require_once($path);

require_once(../../ passowrds.php);比$ path = $ _SERVER ['DOCUMENT_ROOT']最安全;        $ path。=“/ yourfolder / passowrwds.php”;        require_once($路径);