我有一个网站,所有的连接(与数据库和其他)都在一个文件夹中。尽管在限制页面上有一个会话来防止未登录的用户,但如果输入完整的url(即使php显示任何东西,我猜它不是一件好事),这些文件可能会被触及。而且文件夹本身可以看作是服务器上的一个目录,非常糟糕。阻止直接url访问
www.mysite.com/connectionfolder
我该如何处理这个问题?谢谢!
我有一个网站,所有的连接(与数据库和其他)都在一个文件夹中。尽管在限制页面上有一个会话来防止未登录的用户,但如果输入完整的url(即使php显示任何东西,我猜它不是一件好事),这些文件可能会被触及。而且文件夹本身可以看作是服务器上的一个目录,非常糟糕。阻止直接url访问
www.mysite.com/connectionfolder
我该如何处理这个问题?谢谢!
阿帕奇:下面的行添加在你的根.htaccess
文件
Options -Indexes
如果有一条线Options Indexes
已经在现有.htaccess
文件比你可以简单地修改与Options -Indexes
这将使Apache防止直接的目录访问。
虽然我包含该文件在当时的另一个文件,我不能够使用该文件, 我的意思是我有ajax_user.php文件,而Ajax调用我无法访问此文件使用(.htaccess) – Chaudhary
如果你使用Apache,将一个.htaccess文件放到你的根目录下,如果其中一个不存在的话。然后把这个文件中:
Options -Indexes
更多信息:https://httpd.apache.org/docs/current/mod/core.html#options
<?php header("Status: 404 Not Found"); ?>
将这个会话验证后,与页面给予404页面错误,说找不到页面
例如,你可以把它放在
if(!$user_loggedin) {
header("Status: 404 Not Found");
} else {
echo "welcome to your page ....";
}
上面的代码会生成PAGE NO t上找不到错误,如果用户没有loged。这意味着,任何人seeying该错误会THIK的页面完全不
存在,您也可以从“安全”页面将用户重定向离开
<?php
//...Valid user check
if(!$validuser)
{
header("Location: /");
exit;
}
你使用什么服务器? Apache的? –
要限制访问,您可能需要查看.htaccess文件(如果使用Apache)。您可能需要考虑的其他事项,请将您的数据库和任何包含的文件移动到webroot之外的文件夹中。 – MRR0GERS
是否要完全禁用直接访问,即使是登录用户? –