2012-01-10 160 views
0

我正在构建使用许多文件的网站,其中许多文件绝不应通过浏览器访问。例如,每个MYSQL查询页面的用户都有一个mysql_conect脚本,但如果用户要通过URL(example.php/mysqlconnect.php)直接导航到该页面,屏幕将返回空白。如何让浏览器用户尝试直接访问这些文件时会返回401权限错误?Public_html文件权限

+0

“'屏幕将返回blank'” - 那又怎么样呢? – 2012-01-10 00:30:03

+0

“增强的使用体验”大声笑...事实是,你们所有人都是对的,它没有安全风险,所以我暂时离开它。谢谢大家。 – Jon 2012-01-10 00:39:46

+0

这种使用体验的用例是什么?公平用户在什么情况下可能遇到这个文件? – 2012-01-10 00:52:32

回答

2

没有必要这样做。除非你回应价值观,否则你是安全的。

PHP不会在浏览器中呈现,除非被告知这样做。许多(全部)脚本都在做你正在解释的内容。

0

在特定情况下,无论你想,你可以把你的文件,下面的代码添加到您的文件

if(basename($_SERVER['PHP_SELF']) == 'mysqlconnect.php') 
    header('HTTP/1.1 401 Unauthorized'); 
    exit; 

因此,如果该文件将直接请求,它会返回401状态码,然后退出。

1

正如@Paul所说,没有必要这么做,如果用户将浏览器指向example.php/mysqlconnect.php,用户将永远无法看到php文件的内容,但是如果您想要,您可以删除在该mysql_connect.php脚本与以下内容相同的目录.htaccess文件:

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

或者,如果你想限制访问整个目录的.htaccess文件的内容必须是:

deny from all 

Options All -Indexes 

你可以看到这里的.htaccess文件更多的配置选项:

Htaccess tricks