【发布时间】:2013-04-26 11:10:52
【问题描述】:
我使用 Codeigniter+TinyMCE。当我从数据库中的 textarea 发布文本和图像时,仅显示文本。为了解决这个问题,我增加了 POST 限制大小,max_allowed_packet。但这没有帮助。然后我输出转储: $_POST['body'] 只得到:
<p><img alt="" /></p>,
但在 TinyMCE 源代码中我看到:
<p><img src="data:image/png;base64,iVBORw0....etc.
echo $this->input->post('body', TRUE);
显示:
<p><img alt="" /></p> <div id="mcePasteBin" absolute; top: 0px; left: 0; background: red; width: 1px; height: 1px; overflow: hidden" c> <div c><img alt="" /></div> </div>
附言。我从缓冲区插入图像 CTRL+C/CTRL+V 我也安装了 CKEditor 问题。 还尝试更改表单 enctype 类型。 (
在没有 Codeigniter 的情况下,它也可以在简单的 php 中完美运行。
【问题讨论】:
-
$config['permitted_uri_chars'] = '+=\a-z 0-9~%.:_-';
-
可能是 XSS 过滤器删除了 src 属性,因为它们不是典型的 URL。
-
您正在使用以这种方式插入图像的 Firefox。在CKEditor你可以使用这个插件将图片上传到服务器并得到一个正常的URL:ckeditor.com/forums/Plugins/ImagePaste-plugin-for-Firefox
-
似乎是 config.php 中的一些配置导致了这个问题。我尝试在新安装的 CI 和 POST 作品上执行此操作。从我的项目中复制 config.php 并出现问题后。关于 XSS,我尝试在 POST 中使用 TRUE\FALSE,但没有成功。但我会尝试在 config.php 中禁用它....
标签: codeigniter post tinymce ckeditor base64