发现Web输入中的代码,PHP

时间:2012-10-04 18:40:46

标签: php content-management-system wysiwyg

我正在为我的某个网站编写一个基本的CMS,并遇到了一些问题,其中一些页面需要动态地为PHP和JS提供服务,而其他页面则是普通的HTMl。我希望有一个设置允许这个需要它的页面,并将加载ACE编辑器而不是一个不同的所见即所得的编辑器。我想拒绝任何代码在非代码启用页面上的输入。如何确保数据库中包含的所有JS和PHP都不会执行?

1 个答案:

答案 0 :(得分:0)

你真的不想这样做。除了安全问题,如果你做错了,它就成了一个绝对的维护噩梦 - 没有好办法把CMS页面放到版本控制中。在开发环境和实时站点之间测试和迁移代码充其量只会变得脆弱。 In one of my other posts,我详细介绍了运行Drupal网站时遇到的问题。你正在开始一条类似的道路。

话虽如此,如果你坚持遵循这个计划,那么最好的方法就是使用一个合适的模板引擎(我最近一直在使用h2o)&留下逃避内容的担忧。我要做的另一件事是将PHP和代码的可显示部分分开放在完全独立的字段中。这不仅为您提供更清晰的代码(请记住,混合显示和逻辑是坏的)但您可以始终将您显示的内容视为“哑”文本,并且只允许它通过模板访问输出你的PHP。