1

我想让用户使用编辑器(CKEditor)编辑页面。

问题是我想防止 XSS,所以当我使用时:

$this->input->post('content', TRUE)

它还删除了一些 html 内容,例如,以下代码:

<script></script><p><span style="color:#800000;">text</span></p>

变为:

[removed][removed]<p><span 

所以是的,它可以防止 XSS,但也会删除一些必要的 html 内容。

我应该怎么做才能修复它?

4

3 回答 3

3

不要使用他们内置的 XSS 功能。使用HTML 净化器为您完成。这样,您可以更好地控制哪些是删除,哪些不删除。

于 2013-02-22T22:05:43.927 回答
0

尝试这种简单的方法将这段代码更改$this->input->post('content', TRUE)$_POST['content']我的工作,因为 codeigniter 将在运行时进行 XSS 过滤$this->input

于 2021-07-13T13:13:07.390 回答
-1

而不是这个,你可以使用下面的代码。

$content = htmlspecialchars($this->input->post('content'));

保存到数据库和检索时,您可以使用

htmlspecialchars_decode('你的html代码');

于 2013-02-23T05:23:23.033 回答