Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess php_标志引擎关闭不工作。或者我不明白它是怎么工作的_Php_.htaccess - Fatal编程技术网

.htaccess php_标志引擎关闭不工作。或者我不明白它是怎么工作的

.htaccess php_标志引擎关闭不工作。或者我不明白它是怎么工作的,php,.htaccess,Php,.htaccess,例如,名为testplaced.htacess的目录,第一行只有代码php\u标志引擎关闭 在目录test中放置文件test.php,使用此代码echo 1+3 并在另一个文件(main.php)中放置include(“test.php”) 打开main.php并查看4(1+3的结果) 添加了AddType text/plain.php.phtml.php3。同样的结果 由于php\u标志引擎关闭,test.php中的代码将无法执行,因此我预期 需要做什么来防止在test.php中执行代码 试图

例如,名为
test
placed.htacess的目录,第一行只有代码
php\u标志引擎关闭

在目录
test
中放置文件
test.php
,使用此代码
echo 1+3

并在另一个文件(
main.php
)中放置
include(“test.php”)

打开
main.php
并查看
4
(1+3的结果)

添加了
AddType text/plain.php.phtml.php3
。同样的结果

由于
php\u标志引擎关闭,
test.php
中的代码将无法执行,因此我预期

需要做什么来防止在
test.php
中执行代码

试图防止黑客在images目录中以某种方式上传php文件,然后直接访问该文件或将该文件包含在另一个文件中的情况

措施:

1) 创建了多个验证,以检查上传的文件是否为图像,并且不包含一些php代码

2) 已禁用对图像目录的直接访问(在htaccess中)


3) 为了确保黑客不能将上传的php文件包含在另一个目录的文件中,因为understand必须将只读设置为除images目录之外的所有目录,.htaccess指令仅在处理请求时与Apache相关。它将阻止Apache直接执行
test.php
文件(或者更确切地说,它将阻止php在Apache调用它时执行任何操作)。但是,如果Apache正在其他文件夹中执行脚本,那么您就有一个正在运行的PHP实例。这个实例可以做它想做的任何事情。它不会解释任何进一步的.htaccess文件,也不会考虑任何
php\u标志
指令,因为这些指令只在php启动之前适用。一旦它开始运行,它就开始运行

.htaccess文件仅由Apache解释如下:

  • 给定的路径是
    /foo/bar/test.php
  • Apache检查
    /.htaccess
    是否存在,如果存在,则应用其规则
  • Apache检查
    /foo/.htaccess
    是否存在,如果存在,则应用其规则
  • Apache检查
    /foo/bar/.htaccess
    是否存在,如果存在,则应用其规则

另一方面,PHP只是直接包含
foo/bar/test.PHP
,它不查找或解释.htaccess文件。

处理请求时,.htaccess指令仅与Apache相关。它将阻止Apache直接执行
test.php
文件(或者更确切地说,它将阻止php在Apache调用它时执行任何操作)。但是,如果Apache正在其他文件夹中执行脚本,那么您就有一个正在运行的PHP实例。这个实例可以做它想做的任何事情。它不会解释任何进一步的.htaccess文件,也不会考虑任何
php\u标志
指令,因为这些指令只在php启动之前适用。一旦它开始运行,它就开始运行

.htaccess文件仅由Apache解释如下:

  • 给定的路径是
    /foo/bar/test.php
  • Apache检查
    /.htaccess
    是否存在,如果存在,则应用其规则
  • Apache检查
    /foo/.htaccess
    是否存在,如果存在,则应用其规则
  • Apache检查
    /foo/bar/.htaccess
    是否存在,如果存在,则应用其规则

另一方面,PHP只是直接包含
foo/bar/test.PHP
,它不查找或解释.htaccess文件。

因此
main.PHP
与.htaccess文件在目录之外?是的,在目录之外。需要在
main.php
所在的目录中添加
php\u标志引擎关闭
?我不明白您为什么要这样做。如果没有人可以执行,为什么会有一个PHP文件在那里?它是上传图像的目录。请参阅So
main。PHP
与.htaccess文件在目录之外?是的,在目录之外。需要在
main.php
所在的目录中添加
php\u标志引擎关闭
?我不明白您为什么要这样做。如果没有人可以执行PHP文件,为什么会有它呢?它是上传图像的目录。请参阅