【发布时间】:2020-09-24 18:22:19
【问题描述】:
在 Codeigniter 3.x 中,如果我在将 $data 保存到数据库之前使用 $data = $this->security->xss_clean($data);,它会删除 TINYMCE 编辑器 的所有格式并将 xss=removed 放置如下:
<span xss=removed><strong>1. Joint pain </strong></span>
因此,我在输出中看不到字体颜色、背景颜色、字体大小的变化。
如果我在将 $data 保存到数据库之前删除 $data = $this->security->xss_clean($data); 并仅实施以下安全措施,则格式化工作正常:
$data = trim($data);
//$data = $this->security->xss_clean($data);
$data = html_escape($data);
$data = strip_tags($data);
现在它在数据库中存储以下内容:
<span style="font-size: 14pt;"><strong>1. Joint pain </strong></span>
我有两个问题:
-
上述代码是否足以确保发送到数据库的数据被完全清理并且不会允许任何攻击。我正在使用 Codeigniter 的 Active Records 来执行 SQL。
-
我应该在屏幕上显示输出时使用 xss_clean,如下所示:
echo $this->security->xss_clean(htmlspecialchars_decode($data))
请帮忙。
【问题讨论】:
标签: php codeigniter security codeigniter-3 xss