我搜索了周围和found a way to do exactly this。但我很犹豫,因为我偶尔会读到它的"security risk"。不幸的是,没有人详细说明原因。就我个人而言,我不能想到任何安全风险都不会涉及到攻击者已经拥有他们不应该拥有的权限。 MySQL/PHP服务器在同一台机器上运行。所以MySQL和PHP之间没有公共请求。使用MySQL触发器执行PHP有哪些安全风险?
触发的PHP脚本将对第三方CRM/ESP上的Web服务进行API调用,该服务在其服务器上保留某些表的简化版本。然后,我们的营销团队可以登录CRM的GUI,发送电子邮件,收集信息并计划营销活动,而无需打扰开发团队。
该服务器上的表不会镜像我们的,它们只包含他们需要的信息。我想使用触发器的原因是尽可能保持其信息最新,并将逻辑放在一个地方,而不是分散在整个项目中。
更新: 我总是清理/验证任何与MySQL接触的表单。我从不在我的表格中存储PHP。我从来不使用FTP(使用.pem而不是密码的SFTP)。 将执行的脚本将是我创建的单个文件,不会改变哪个文件正在经历我使用的相同框架(zend)。传递给脚本的唯一变量将是行的id(它将被验证为INT)。 我正在考虑不这样做,因为性能。并且让PHP异步执行是可能的,但是很困难并且不值得我的时间去实现。但我仍然很好奇,除了性能损失之外,安全问题与说网络服务有什么不同?我的意思是你必须像使用Web服务一样进行清理/验证,所以考虑到这一点,会出现什么问题?
这是一个安全风险,因为它可以执行任意代码。该代码可以执行任何操作,直至并包括DROP TABLE STUDENTS。通过在线路上发送代码来构建应用程序听起来像是一个非常糟糕的主意,而且无论如何您并不需要它。 – 2013-04-25 18:11:14