基本的问题是 - 它是安全存储HTML在数据库中,如果我限制谁可以提交呢?
我有一个非常简单的问题。 我公司提供的视频教程等内容。 没有花费数月时间编写一个适当的BBCode的解析器,我需要存储HTML,所以我可以把它看正是我想要的方式,当我从数据库中抓住它。
基本上,我打算存储在大约教程系列每集数据库的所有信息。 我想有一些格式化的描述两个这样我就可以添加多个段落,有序和无序列表,链接到所需的资源,等等。
我使用PHP和创造我自己的数据库。 我使用phpMyAdmin,现在存储在表中的信息。 当我拉在PHP代码的信息,我将使用具有只读权限的用户。
做这个的最好方式是什么? 谢谢!
像其他人指出,没有什么危险的关于在数据库存储 HTML。 但是,当你显示它您需要知道HTML是安全的。 看到你是唯一一个编辑HTML我看不出有什么问题。
不过,我不会存储HTML的。 如果你需要的是标题,段落,列表,链接,图片等我会说降价是一个完美的结合。 与降价的好处是,它看起来就像普通的文本(例如,你可以把你的文章作为电子邮件发送或将其保存为TXT的文件),它占用少了很多空间比HTML 和你不必去改变它一旦HTML得到更新。
http://michelf.ca/projects/php-markdown/
从安全角度看它是不是不太安全到HTML存储不是将其存储在其他位置上的数据库 - 如果你是HTML的唯一作者。 但话又说回来,如果其他人可以在自己的网站编写HTML那么也不要紧,你保存它 - 你只是如何消毒,以及如何以及在哪里显示它。
现在,无论它是否是存储HTML是一个完全不同的问题的有效途径。 如果我是你,我会用在文件中有一些不错的模板系统和存储HTML。
保存的HTML代码是好的。 但是,如果它不是来自受信任的来源,你需要检查它,只允许标记的安全子集。 HTML整洁库会帮你。
另外,你需要在网站设计未来的变化来算,所以不要用太多的标记,只有基本的标签。 为了使它看起来像你想,在标记使用全局CSS规则和语义命名类。
但更重要的是用降价或其他类似wiki的语法。 有漂亮的JS编辑器降价与实时预览(如在这里Stackowerflow的),你可以完全避免HTML。