HP.*_*HP. 2 html php mysql markdown htmlpurifier
我正在开发一个迷你博客,它允许用户使用 WYSIWYG 编辑器向网站添加帖子,因此我将把这篇帖子存储在我的数据库中。
研究了降价后,我得出的结论是它不适合用途,因为我需要上传本地视频,这就是为什么我现在计划将 WYSIWYG 编辑器中的 HTML 存储到我的数据库中。
然而,我确实对 SQL 注入和 XSS 攻击有一些担忧,但是我研究了一种解决方案,即 HTML 净化器。
如果我使用 HTML 净化器删除不需要的 HTML 标签,那么这是将 HTML 存储在我的数据库中的安全解决方案吗?
在数据库中存储 HTML 本质上并不是不安全的,就像存储纯文本本质上是不安全的一样。通过使用准备好的语句和适当的占位符,可以轻松降低 SQL 注入的风险。转义既不是必需的,也不是防止 SQL 注入的最佳做法。准备好的语句是。
相反,XSS 和其他与 HTML 相关的漏洞与数据库无关,而与从不受信任的来源向查看者呈现 HTML 相关。如果 HTML 只是存储在文件中,根本没有数据库,那么同样的漏洞也会存在,因此不需要保护数据库免受恶意 HTML 的攻击。数据库不知道存储的 HTML 内容中包含的内容,也不知道它的脆弱性,因为它不会呈现或解释 HTML……同样,只要您的数据库交互使用准备好的语句。没有可以接受的理由来避免这些。
将这一点夸大到极端,将包含病毒的文件作为 blob 存储在数据库中是完全安全的,因为数据库不会将存储在其中的数据作为代码执行。该漏洞将针对下载这些病毒的用户。
| 归档时间: |
|
| 查看次数: |
5811 次 |
| 最近记录: |