【问题标题】:restrict access on file with php in apache在apache中使用php限制对文件的访问
【发布时间】:2023-04-09 15:54:01
【问题描述】:

我在 apache 网络服务器上有一个站点。 我有这样的文件结构。

test.php
accessA.php
otherfiles.php

我想为所有用户和所有文件添加对 test.php 文件的限制访问。例如,如果用户输入 http://site/test.php 作为 url 或文件或用户想要访问 site/test.php 目录错误消息显示,用户无法访问testA.php。 但我只想允许 accessA.php 文件访问带有这样的包含语句的 test.php 文件。 访问A.php

<?php
include_once 'test.php' ;
?>

换句话说,我希望只允许accessA.php 访问test.php 文件。 我该怎么做??

我可以使用 open_basedir 吗??

【问题讨论】:

  • text.php 的第一行中,针对一组已知权限测试用户帐户。如果用户没有适当的权限,发送 303。
  • 我可以使用 open_basedir 吗??
  • 我不明白你到底在问什么。请让问题更清楚。

标签: php apache


【解决方案1】:

您不能使用 open_basedir,它是一种允许 chroot apache 实例的配置(它使网站的根目录位于您在 open base dir 变量中定义的级别) 拒绝访问某些页面的更好方法是执行 htaccess

【讨论】:

    【解决方案2】:

    将这一行放在 test.php 文件的顶部:

    if($_SERVER['SCRIPT_NAME']=='test.php')die('not allowed');
    

    您也可以通过 htaccess 规则拒绝访问。

    RewriteRule ^test.php$ - [R=404,L]
    

    【讨论】:

    • 在这种情况下如何使用 accessA.php 访问 test.php ??
    • 如果您包含来自accessA.phptest.php,则脚本名称将为accessA.php 而不是test.php,因此您将能够包含test.php
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多