相关疑难解决方法(0)

上传文件最安全的方法是什么?

我工作的公司最近在我们托管的网站上遇到了许多标头注入和文件上传攻击,虽然我们已经修复了关于标头注入攻击的问题,但我们尚未控制上传漏洞.

我正在尝试设置一个即插即用型的上传脚本系列,以便内部使用,设计人员可以将其复制到他们的网站结构中,修改一些变量,并有一个随时可用的上传表单.他们的网站.我们希望尽可能地限制我们的曝光(我们已经关闭了fopen和shell命令).

我在网站上搜索了最后一小时,发现许多不同的答案处理依赖外部资源的特定方法.您认为什么是最好的仅限脚本的解决方案,具体到足以用作可靠的保护方法?另外,如果可能的话,我想将语言限制为PHP或伪代码.

编辑:我找到了我的答案(在下面发布),虽然它确实使用了shell命令exec(),但是如果阻止脚本文件被上传(这个解决方案做得很好),你就不会遇到任何问题.

php security file-upload

36
推荐指数
2
解决办法
3万
查看次数

如何使用php-fpm设置每个目录的php_flag?

我的问题

我想关闭特定文件夹中的php引擎,用户可以在其中上传文件,但似乎无法弄清楚。

PHP版本: 5.5.26

PHP模式: php-fpm(FastCGI进程管理器)

Apache版本: 2.2.29

服务器: Synology DS212j-DSM 5.2)

您还有其他需要知道的吗?


到目前为止,我已经尝试过:

从.htaccess文件禁用

php-fpm(和某些其他模式)不支持此功能,它会显示500错误,记录如下:

Invalid command 'php_value', perhaps mis-spelled or defined by a module not included in the server configuration.
Run Code Online (Sandbox Code Playgroud)

每目录php.ini

我试过按目录的php.ini文件(在avatars目录中放了一个额外的php.ini文件),但没有成功。PHP从未加载文件。不知道我做错了什么,我尝试将其命名为php.ini.user.ini,但都没有用。

php.ini主要部分

我还尝试在php.ini主文件中使用一个部分,

[path=/path/to/secure/dir]
engine = off
max_execution_time = 300
Run Code Online (Sandbox Code Playgroud)

当我这样做并phpinfo()在安全目录中的文件中运行时,该文件max_execution_time被设置为300(因此该文件已被重新加载),但是引擎仍在运行(我假设,因为phpinfo()显示了)。

php-fpm池

我也读过有关php-fpm池的信息,但是在我看来,您只能按域/虚拟主机指定池,我错了吗?

编辑虚拟主机

我尝试在此处<Directory /path/to/secure/dir>建议的部分中从vhosts文件中禁用它(这就是所谓的名字吗?),但这也不被支持。


额外信息

我正在基于Paniques的HUGE构建应用程序。在上载目录的.htaccess-file中,使用来关闭php引擎(出于安全原因)php_flag engine off

php php-ini

5
推荐指数
1
解决办法
1991
查看次数

如何以非扩展依赖方式禁用htaccess中的cgi?

我想在我的文档根目录下面的目录中禁用任何类型的CGI执行.任何一种:php,perl,ruby ......无论如何.我想以一种不依赖文件扩展名的方式来做这件事.在我的文档根目录下面,因为用户必须能够放置和查看HTML文件.

它必须在htaccess中,因为它是一个共享主机.

单独使用-ExecCGI不起作用.我必须向该行添加一个与扩展相关的AddHandler指令.

在本主题中找到了一些接近的答案,但它们依赖于扩展,依赖于php或全局apache配置.

它可能做我想要的吗?

非常感谢你,

apache .htaccess cgi

3
推荐指数
1
解决办法
2198
查看次数

标签 统计

php ×2

.htaccess ×1

apache ×1

cgi ×1

file-upload ×1

php-ini ×1

security ×1