CMS调用PHP脚本直接编辑HTML文件是否有任何损害,而不将输入存储在数据库中?只要所有投入都经过彻底消毒,就不会想到任何有害的东西。
如果将数据存储在MySQL数据库中,这种方法不能打开任何不存在的安全问题的应用程序吗?
答案 0 :(得分:1)
除了安全性之外,还有其他问题。没有数据库,根据文件名以外的其他内容搜索数据会很困难。例如,您需要在特定时间段之间创建的项目。此外,对文件的读/写速度比对数据库的读/写速度慢。而且,如果两个用户尝试读/写相同的内容怎么办?支持事务的数据库可以解决这个问题,但可以读取/写入文件,而不是。
答案 1 :(得分:0)
很多应用程序都是这样做的,我不会说安全地做这件事是不可能的,但是设置一个应用程序设置为写入文件而不是写入数据库有一个根本区别。 (除了存储过程之外,贪婪地使用eval(),数据库系统中的罕见缺陷,允许数据作为代码执行)数据库内的数据比文件系统中的文件更难以执行。如果你的清理和逻辑放在哪里放文件和名称是万无一失的,你可以使用文件或db。但是,如果攻击者能够获取恶意数据,或者导致应用程序将文件保存在其他位置,请考虑直接文件系统存储与数据库存储之间的差异。使用数据库,他们可能做的最糟糕的事情就是用你不喜欢的数据覆盖你不想要的部分数据库。这并不是完全无害的,他们可以做一些事情,比如将XSS攻击写入最终会在页面上显示的数据库等等,但是如果它们可以将任意数据放入任意文件中,它就不会像它们那样糟糕。文件系统。