在数据库codeigniter中存储HTML

时间:2011-10-28 13:37:27

标签: php html database codeigniter content-management-system

我正在创建一个带有codeigniter的CMS,需要存储一些用html包装的文本。然后,我将从数据库中获取数据并将其回显到我的页面上。做安全意识的最佳方法是什么?

数据示例:

<h2>A fresh approach</h2>
    <p>Whether you have queries regarding your</p>
<a href="#">cgoto page</a>

2 个答案:

答案 0 :(得分:3)

在保存之前应用XSS过滤器(更好,因为您将保存一次并回显几次)或输出并将内容分配给传递给视图的变量。您可以使用$ this-&gt; security-&gt; xss_clean($ data_retrieved)。

答案 1 :(得分:1)

消毒始终是必要的。

我特别喜欢使用HTML标记的白名单,因此您可以分析即将存储的数据,并简单地清除不在该白名单中的HTML标记。这样,如果您愿意,可以阻止用户插入某些标记,例如<script><object>,这些标记会产生无法预测或模糊不清的行为。

  

假设您的某个CMS用户使用了非常愚蠢的密码和某人   否则可以访问应用程序。过滤HTML内容会   防止冒名顶替者插入恶意跨域javascript   收集键盘事件(可能会泄露可能的密码)   登录表格)等。

此外,验证您要存储的HTML总是好的,因为任何无效的HTML最终都会损害您的网站标记,甚至在某些浏览器中破坏您的呈现。

在将数据存储到数据库之前进行检查可能是不够的,因为数据可能会被直接数据库访问损坏,因此在回显内容之前,请执行@RodrigoFerreira所说的内容。