在数据库编码器中存储HTML


Storing HTML in database codeigniter

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

数据示例:

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

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

卫生处理总是必要的。

我特别喜欢对HTML标签使用白名单,这样你就可以分析你要存储的数据,并简单地删除不在白名单中的HTML标签。这样,如果您愿意,您可以防止用户插入某些标记,如<script><object>,这些标记具有不可预测的或模糊的行为。

假设您的一个CMS用户使用了一个非常愚蠢的密码,而有人Else获得对应用程序的访问权限。过滤HTML内容防止冒名顶替者插入恶意跨域javascript收集键盘事件(可能会显示可能的密码)登录表单)等

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

在将数据存储到数据库之前做检查可能是不够的,因为数据可能会被直接访问数据库所破坏,所以在回显内容之前做@RodrigoFerreira所说的