0

我四处寻找并找到了一种方法来做到这一点。但我很犹豫,因为我偶尔会读到它是“安全风险”。不幸的是,没有人详细说明原因。就我个人而言,我想不出任何不涉及攻击者的安全风险,攻击者已经拥有他们不应该拥有的权限。MySQL/PHP 服务器在同一台机器上运行。所以 MySQL 和 PHP 之间没有公共请求。

触发的 PHP 脚本将对第三方 CRM/ESP 上的 Web 服务进行 API 调用,该服务在其服务器上保留某些表的简化版本。然后,我们的营销团队可以登录 CRM 的 GUI 并发送电子邮件、收集信息并计划营销活动,而无需打扰开发团队。

这台服务器上的表不反映我们的,它们只包含他们需要的信息。我想使用触发器的原因是尽可能保持它们的信息是最新的,并将该逻辑放在一个地方,而不是分散在整个项目中。

更新: 我总是清理/验证任何接触 MySQL 的表单。我从不在我的表中存储 PHP。我从不使用 FTP(SFTP 使用 .pem 而不是密码)。将要执行的脚本将是我创建的一个不会改变的文件,它通过我正在使用的同一框架(zend)。传递给脚本的唯一变量将是行的 id(将被验证为 INT)。由于性能,我正在考虑不这样做。并且使 PHP 异步执行是可能的,但很困难,不值得我花时间去实现。但我仍然很好奇,除了性能损失之外,安全问题与网络服务有何不同?我的意思是您肯定必须像处理 Web 服务一样进行清理/验证,所以考虑到这一点,会有什么问题?

4

1 回答 1

0

您的应用程序可能会受到不同程度的入侵,例如 SQL 注入、嗅探 FTP 密码或代码本身的漏洞。通常最好将这些东西保持在尽可能本地化的位置,以防止一个区域的漏洞级联。

例如,假设您在数据库中存储敏感数据。通常,您会以某种方式加密此数据,使用未存储在数据库本身中的盐和密钥。然后,如果您的数据库被 SQL 注入入侵,攻击者可能会造成破坏,但他们将无法窃取敏感信息。但是,如果您正在执行以文本形式存储在数据库中的 PHP,攻击者肯定会意识到这一点并对其进行更新以执行他的代码,从那里他可以弄清楚您是如何加密敏感数据并对其进行解密的。

简而言之,SQL 注入非常普遍(即使您遵循最佳实践,也没有人说明年进来的实习生会),因此执行存储在数据库中的代码是不安全的。

编辑:更仔细地阅读您的链接后,我需要重申一些事情。我看不出这有什么特别的安全风险,但这似乎真的违背了数据和逻辑的分离。此外,mysql 不是异步的,并且不可能在负载下扩展......

于 2013-04-25T21:30:17.627 回答