Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Php 这条规则是否足以防止安全漏洞?_Php_Security_Apache_Mod Rewrite - Fatal编程技术网

Php 这条规则是否足以防止安全漏洞?

Php 这条规则是否足以防止安全漏洞?,php,security,apache,mod-rewrite,Php,Security,Apache,Mod Rewrite,我遇到了一个问题,Web服务器上的文件是用命令行编辑器在本地编辑的 编辑器创建了一个后缀为~字符的备份文件 因此有一个名为file.php ~ 该文件可以通过Web服务器直接下载,因为它不是作为php文件处理的 我想到了这样一个指令: <Files ~ "~$"> Order allow,deny Deny from all </Files> 命令允许,拒绝 全盘否定 因此,每个以~结尾的文件都被拒绝传递 这是一个好方法吗,我错过了什么吗?这应该可以充分解决它;然而

我遇到了一个问题,Web服务器上的文件是用命令行编辑器在本地编辑的

编辑器创建了一个后缀为
~
字符的备份文件

因此有一个名为
file.php ~

该文件可以通过Web服务器直接下载,因为它不是作为php文件处理的

我想到了这样一个指令:

<Files ~ "~$">
Order allow,deny
Deny from all
</Files>

命令允许,拒绝
全盘否定
因此,每个以
~
结尾的文件都被拒绝传递


这是一个好方法吗,我错过了什么吗?

这应该可以充分解决它;然而,更大的问题是直接在服务器上进行编辑,这时您应该使用源代码管理(如svn、git),然后从源代码管理进行部署。如果另一个编辑器使用
.bak

如何阻止他们将~更改为其他字符?更好的解决方案是告诉编辑器不要创建备份文件,和/或只是在文档根目录之外的某个地方编辑该文件。为什么不只允许执行.php文件,而只允许执行.css/.png/.js。。。。等文件,而不是仅仅避免这一种情况?我认为这是一件好事,即使你没有这个问题。我完全同意这一点。然而,很难控制人为错误;)在本例中,它是一个未版本化的文件(本地配置,包括数据库访问数据)。凭证被更改了,这是在本地编辑凭证的原因。凭证文件实际上不应该在web根目录中,但我意识到很多php应用程序都会这样做。