如何执行存储在MySQL数据库中的PHP?
我正在尝试编写一个页面,该页面调用存储在MySQL数据库中的PHP。存储在MySQL数据库中的页面包含要在页面加载时运行的PHP(和HTML)代码。
我该怎么做呢?
解决方案
回答
我们可以查看PHP中的eval函数。它允许我们运行任意PHP代码。但是,这可能会带来巨大的安全风险,因此最好避免。
回答
我们可以为此使用eval命令。但我还是建议不要这样做,因为使用这种方法存在很多陷阱。调试比较困难,这意味着一些安全隐患(执行数据库中的不良内容,呵呵)。
请参阅何时在php中使用eval邪恶?例如。 Google for Eval就是邪恶的,我们会找到很多为什么需要其他解决方案的示例。
另外:这篇博客文章是另一篇很好的文章,其中引用了一些漏洞利用方法。指的是过去的vBulletin和phpMyAdmin漏洞,这些漏洞是由Eval使用不当引起的。
回答
eval()函数在其他响应中也有介绍。我同意,除非绝对需要,否则应限制使用eval
。不用在db中包含PHP代码,我们可以只拥有一个类名称,该类名称具有称为" execute()"的方法。每当我们需要运行自定义PHP代码时,只需实例化刚从db获取的名称类,然后在其上运行-> execute()
。它是一种更清洁的解决方案,可为我们提供更大的灵活性,并显着提高站点安全性。
回答
我们是否考虑过使用Source Control系统为各种安装(以及其中不同的模块)存储不同的fork?这将是我能想到的几种应用程序配置最佳实践之一。要求不是一个不寻常的要求,因此这是过去其他人已经解决的一个问题。并将代码存储在数据库中是我认为我们很难找到参考或者被建议为最佳做法。
我们发布了澄清的好东西。我们可能无意中提出了一个答案来寻找合适的问题。
回答
简单:
$x // your variable with the data from the DB <?php echo eval("?>".$x."<?") ?>
让我知道,在许多应用程序中对我来说非常有效,不禁注意到每个人都很快说出它有多糟糕,但实际上很难给出直接答案...