php 安全 - 防止加载可写的 php 文件

标签 php security

我正在尝试强制执行互斥的写入和执行策略。由于解释器只需要读取权限即可执行文件,因此避免加载不受信任的 php 代码变得非常棘手。

因此,本质上,如果解释器可以打开 php 文件进行写入,或者该文件由运行 php 进程的用户拥有(即可以更改权限以具有写入权限),我想停止加载文件。有谁知道有什么方法可以实现这一目标吗?

这可能仅在托管类型环境中有意义,其中上传合法 PHP 代码的用户和 PHP 解释器的用户是不同的用户。因此,这可能需要一些配置选项,因为该限制仅在某些配置中才有意义,并且直接违背了我在此事上可以找到的所有“最佳实践”建议。

最佳答案

有一种比担心文件系统权限更简单的方法来实现此属性:

  1. 将所有代码发送到 Phar(PHP 存档)中。
  2. 使用 digital signature for your Phars .

默认情况下,PHP 将 PHP 存档视为只读。请参阅SitePoint's guide用于从 PHP Archive 提供网站服务。

但是,即使有人可以通过错误配置、使用数字签名(私钥不得存储在网络服务器上,只能存储公钥)来规避 PHP,他们也无法篡改 Phar(除非他们窃取您的私钥)。

<小时/>

此外,Snuffleupagus似乎有助于锁定 PHP 脚本允许执行的操作。

关于php 安全 - 防止加载可写的 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49940812/

相关文章:

php - 当大量数据被POST到一个超过1 mb的php文件时,将出现500 Internal Server Error

javascript - 除了 https 安全隧道之外,还有其他方法可以更安全地保护 cookie 吗?

asp.net - ASP.NET 中的 SMTP header 注入(inject)?

mysql - 如何在此 PHP 和 MySQL 代码中演示 SQL 注入(inject)?

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - Fat Free Framework 动态缓存过期

php - 从数据库 laravel 中显示喜欢的产品

android - 接受自签名证书安全吗?

c++ - 此 strncpy 存在哪些安全问题?

php - 无法从大型表行中检索记录