在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是不是安全

Posted

技术标签:

【中文标题】在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是不是安全【英文标题】:Is it safe to use MySQL triggers in PHP software that will be installed on many random hostings在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是否安全 【发布时间】:2012-01-10 02:22:37 【问题描述】:

如今 mysql 触发器有多常见 - 绝大多数主机是否都安装了足够的 MySQL 服务器?

【问题讨论】:

这个问题很可能因为过于宽泛而被关闭。你能给我们一个更具体的用例吗? 【参考方案1】:

除非您要求使用专用主机或类似的主机,例如 VPS 主机,否则我不会尝试在桌子之外使用太多其他东西。

大多数共享/转销商配置都存在有关 VIEW、TRIGGERS 和 STORED PROCEDURES 的权限问题。

如果您不介意为您的应用程序需要专用托管,那么我认为您可以安全地使用这些。

【讨论】:

我相信这是真的,因为许多共享主机使用多个用户之间共享的单个 MySQL 实例。要更清楚。 MySQL 服务器可能支持触发器,但访问数据库的用户很可能无权使用触发器。 确实,如果我没记错的话,这是因为 VIEWS、TRIGGERS 和 STORED PROC 的使用是在服务器级别(用于创建)授予的,因此大多数共享主机无法授予此权限...跨度> 请参阅此处的文档,“在 MySQL 5.1.6 之前,创建或删除触发器需要 SUPER 权限。” dev.mysql.com/doc/refman/5.1/en/grant.html 那你得看看我流行的网络托管服务商,他们肯定做错了什么...... :(【参考方案2】:

我不知道绝大多数情况,但我不会选择不允许我执行触发器和存储过程的提供程序。

触发器非常强大,在执行高级操作时非常难以生存,尤其是在不停机的情况下进行升级和在表之间迁移数据。

我会说触发器在严肃的设置中非常常见,但在数据库的早期阶段几乎从未出现。

只要我的 50 美分。

【讨论】:

【参考方案3】:

我认为这会很好。根据 MySQL 文档,从 MySQL 5.0.2 开始支持触发器:

从 MySQL 5.0.2 开始包括对触发器的支持。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

该版本已经存在了一段时间,从 2005 年 10 月发布的 5.0 开始: http://en.wikipedia.org/wiki/MySQL#Product_history

所以,我猜这对你有用,除非它安装在一个非常旧的主机上,否则它应该可以工作。

【讨论】:

以上是关于在将安装在许多随机主机上的 PHP 软件中使用 MySQL 触发器是不是安全的主要内容,如果未能解决你的问题,请参考以下文章

PHP/SSH 正则表达式脚本/命令从许多文件中删除相同的恶意软件代码

如何在Debian 10上安装Apache并设置虚拟主机

测试docker安装nginx+PHP部署小应用

PHP时间戳函数总结

来自本地主机的 XAMPP 和 PHP 邮件

RHCE-B3. 创建playbook安装 php 和 mariadb 软件包到指定主机组