【问题标题】:PHP CMS: Directly Editing Content (no DB)PHP CMS:直接编辑内容(无数据库)
【发布时间】:2014-04-17 23:26:17
【问题描述】:

CMS 调用 PHP 脚本直接编辑 HTML 文件而不将输入存储在数据库中是否有任何危害?只要彻底清除所有输入,就不会想到任何有害的东西。

如果将数据存储在 MySQL 数据库中,这种方法不会导致应用程序出现任何安全问题,对吗?

【问题讨论】:

    标签: javascript php mysql content-management-system


    【解决方案1】:

    除了安全性之外,这里还有其他问题。如果没有数据库,则根据文件名以外的内容搜索数据将变得既困难又缓慢。例如,您希望在一组特定时间之间创建项目。此外,对文件的读/写比对数据库的读/写要慢。而且,如果两个用户尝试读/写相同的内容怎么办?支持事务的数据库可以解决这个问题,但是读/写文件就不行了。

    【讨论】:

      【解决方案2】:

      很多应用程序都这样做,我不会说不可能安全地做到这一点,但是将应用程序设置为写入文件而不是写入数据库存在根本区别。 (除了存储过程,愚蠢地使用 eval(),数据库系统中允许数据作为代码执行的罕见缺陷)数据库中的数据比文件系统中的文件更难执行。如果您的清理和关于文件放置位置和命名的逻辑是万无一失的,那么您可以使用文件或数据库。但是,如果攻击者能够通过恶意数据获取恶意数据,或者导致应用程序将文件保存在不同的位置,请考虑直接文件系统存储与数据库存储的差异。对于数据库,他们能做的最糟糕的事情就是用您不喜欢的数据覆盖您不希望他们这样做的数据库部分。这并不是完全无害的,他们可以做一些事情,比如将 XSS 攻击写入到最终会显示在页面上的数据库中,等等,但是如果他们可以将任意数据写入文件系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多