如何在不允许下载的情况下提供 php 页面?
How to serve php pages without allowing them to be downloadable?
我对 linux 上的 Apache 服务器有疑问:
如何让 apache 使用 .php 文件为相应的 http 页面提供服务,同时仍然防止第三方使用 wget 下载相同的 .php 文件?
我想这可能涉及文件所有权、文件权限、php 配置和 apache 配置。
这是我发现我的 php 代码被暴露之前的情况:
我在 centos 8 服务器上安装了 Apache 2.4.37,还有 PHP 7.2.33
我在 /var/www/html
中有一个 hello world test.php php 文件
$ls-l
-rw-r--r--. 1 root root 75 31 août 2020 test.php
当
我愿意
- 使用 Firefox 转到 siteurl/test.php,
我收到正常回显的 hello world 消息。
问题是我可以从另一台电脑上下载源代码
2)
wget 'siteurl/test.php'
在终端
我觉得它不是很安全,因为数据库凭据可以在 php 文件中,如 config.php;一般来说,如果可能的话,我想隐藏我的代码。
我试图解决编辑问题 httpd.conf:
我添加了以下几行
<Files ~ "\.php$>
<RequireAll>
Require all denied
Require not user apache
</RequireAll>
</Files>
(用户和组设置为apache)
我重启了httpd
现在
当我做 1),
我收到消息
Forbidden
You don't have permission to access /test.php on this server."
当我执行 2) 时,出现 403 错误。
所以问题并没有真正解决,
我希望 1) 像以前一样行事,2) 像现在一样行事。
感谢您的帮助,
最佳。
您的 apache.conf 是否包含这些行?
AddHandler php-script .php
AddType text/html .php
他们应该告诉 Apache php 脚本应该由 PHP 模块处理,而不是像其他文件一样下载。
您的 Require 规则拒绝访问所有带有 .php 扩展名的 URL,而不仅仅是阻止它们的下载。这是您要实现的目标的错误解决方案。
我对 linux 上的 Apache 服务器有疑问: 如何让 apache 使用 .php 文件为相应的 http 页面提供服务,同时仍然防止第三方使用 wget 下载相同的 .php 文件?
我想这可能涉及文件所有权、文件权限、php 配置和 apache 配置。
这是我发现我的 php 代码被暴露之前的情况:
我在 centos 8 服务器上安装了 Apache 2.4.37,还有 PHP 7.2.33
我在 /var/www/html
中有一个 hello world test.php php 文件$ls-l
-rw-r--r--. 1 root root 75 31 août 2020 test.php
当 我愿意
- 使用 Firefox 转到 siteurl/test.php, 我收到正常回显的 hello world 消息。
问题是我可以从另一台电脑上下载源代码 2)
wget 'siteurl/test.php'
在终端 我觉得它不是很安全,因为数据库凭据可以在 php 文件中,如 config.php;一般来说,如果可能的话,我想隐藏我的代码。
我试图解决编辑问题 httpd.conf:
我添加了以下几行
<Files ~ "\.php$>
<RequireAll>
Require all denied
Require not user apache
</RequireAll>
</Files>
(用户和组设置为apache)
我重启了httpd 现在 当我做 1), 我收到消息
Forbidden You don't have permission to access /test.php on this server."
当我执行 2) 时,出现 403 错误。
所以问题并没有真正解决,
我希望 1) 像以前一样行事,2) 像现在一样行事。
感谢您的帮助,
最佳。
您的 apache.conf 是否包含这些行?
AddHandler php-script .php
AddType text/html .php
他们应该告诉 Apache php 脚本应该由 PHP 模块处理,而不是像其他文件一样下载。
您的 Require 规则拒绝访问所有带有 .php 扩展名的 URL,而不仅仅是阻止它们的下载。这是您要实现的目标的错误解决方案。