我在1年前使用php创建了一个网站,当时我的体验很少。我的老师和我今天正在分析代码,似乎存在安全问题。在他给我我需要的分数之前,他希望我解决它。
我在根目录中有一个index.php
和一个edit.php
文件,在/php/login.php
中有一个登录页面(我认为这是一个非常愚蠢的登录位置文件输入,现在我回头看看,如果我要重写我的网站,我可能会交换edit.php
和login.php
的目录。
基本上,我希望外部可以访问这三个文件。我希望从外部限制所有其他php文件,因此不可能从系统外部对/php/phpsavefile.php
进行ajax调用(这是我提到的安全问题)。 edit.php
对/php/savefile.php
进行ajax调用。
我认为这是我完成工作所需要的:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
<Files /index.php>
Order Allow,Deny
Allow from all
</Files>
但是如何在<Files
之后和>
之前添加三个文件而不是一个?
我也试过第二种方法:
Order Deny,Allow
Deny from all
这似乎不起作用,因为ajax调用似乎也是一个常规的http请求,所以它得到403响应。
我尝试的另一种方法是将受限制的php文件放在名为“private”的地图中 在“httpdocs”仍然存在的同一文件夹中(webroot的父文件夹)。我的老师告诉我一个管理员文件夹,没有人可以访问,但网站本身。我尝试将受限制的php文件包含在私人文件夹中,但它似乎没有正确包含它...
.htaccess对这位新手的任何帮助或提示都将不胜感激:-)
编辑:
.htaccess allow access to files only from includes
雷的评论说:当然,因为它们是客户要求的。您不能“允许客户端”和“不允许客户端”提供文件。
我认为这是真的,但是如何阻止人们调用我的ajax文件?
答案 0 :(得分:0)
我通过检查用户是否已登录来保护它。