php – 如何使用.htaccess保护服务器目录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何使用.htaccess保护服务器目录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1928字,纯文字阅读大概需要3分钟。
内容图文
我设计了一个网站,在其中我有一系列与我的系统交互的PHP脚本.例如,如果用户上传图像,则由脚本处理
image.php
如果用户登录,则由脚本处理
login.php
所有这些脚本都存储在名为:scripts的文件夹中
如何确保某人无法访问这些页面,但是仍然确保系统可以使用它们?我想确保PHP页面接受post值,获取值并可以重定向到其他页面,但不能通过地址栏直接访问或下载?
我尝试使用.nytcess阻止访问使用deny from all和Limit GET,POST但这阻止了系统工作,因为我根本无法访问这些文件.
解决方法:
使用htaccess阻止文件会使请求者无法访问文件,例如页面的访问者.因此,您需要一个代理文件来将访问者的请求传递给文件.为此,请查看MVC pattern和Front Controller pattern.
基本上,您要做的是将所有请求路由到单个入口点,例如index.php并从那里决定调用哪个动作(您的脚本)来处理请求.然后,您可以将脚本和模板放在可公开访问的文件夹之外,或者,如果这是不可能的(在某些共享主机上),请使用htaccess保护文件夹,就像您已经完成的那样(DENY FROM ALL).
要使用上传脚本,您需要一个http://example.com/index.php?action=upload等网址.
超简单的FrontController就像一样简单
$scriptPath = 'path/to/your/scripts/directory/';
$defaultAction = 'action404.php';
$requestedAction = $_GET['action']; // you might want to sanitize this
switch($action) {
case 'upload':
$actionScript = 'image.php';
break;
case 'login':
$actionScript = 'login.php';
break;
default:
$actionScript = $defaultAction;
}
include $scriptPath . $actionScript;
exit;
然后,您的actionScript将执行您对请求所需的所有操作,包括重定向,数据库访问,身份验证,上传内容,呈现模板等 – 您认为必要的任何内容.上例中的默认操作可能如下所示:
<?php // action404.php
header('HTTP/1.1 404 File Not Found');
fpassthru('path/to/template/directory/error404.html');
有numerous implementations of the FrontController pattern in PHP.有些简单,有些复杂. CodeIgniter framework使用了一个轻量级的MVC / FrontController实现,如果这对你来说是新手,那么它可能不会太强大.
与上面建议的Atli一样,您可以使用mod_rewrite强制所有对index.php的请求,您也可以使用它来提升您的URL.这是MVC框架的常见做法,并已在此处和其他地方广泛涉及.
内容总结
以上是互联网集市为您收集整理的php – 如何使用.htaccess保护服务器目录全部内容,希望文章能够帮你解决php – 如何使用.htaccess保护服务器目录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。