关于接收表单值处理的问题
最近用某富文本编辑器做发布文章的功能。使用$this->input->post()接收值存入数据库--然后在修改页面-将数据库的值再初始化到 富文本编辑器中。最后在编辑器中显示的内容,丢失了某一部分。请教下有此经验的程序员们,CI的post接收数据之后是否再处理下才能存入数据库(不担心攻击问题)。
谁能帮助下??? 本帖最后由 Closer 于 2015-5-31 12:45 编辑
因為你開啟了 "XSS防禦"
他會將富文本編輯器內常見的 style='' 內所有值吃掉
XSS 防禦可以由三種方式開啟(你可以從這些地方關閉他們):
1. config.php 內的全域 XSS ( $config['global_xss_filtering'] = TRUE; )
2. POST、GET 或 COOKIE 的第二參數為 TRUE ( $this->input->post(NULL, TRUE); )
3. 表單驗證類使用了 xss_clean
Closer 发表于 2015-5-31 12:43
因為你開啟了 "XSS防禦"
他會將富文本編輯器內常見的 style='' 內所有值吃掉
看过这个原因,感觉也没有敏感的字符过滤掉啊!还是post方法在存入数据库之前还需转义什么的呢?
可以把第二个参数改成false不?全局开着
v阿杰 发表于 2015-5-31 12:47
看过这个原因,感觉也没有敏感的字符过滤掉啊!还是post方法在存入数据库之前还需转义什么的呢?
可以把第 ...
沒有用,除非你關閉全局
他的優先度是全局 > input > 表單驗證 Closer 发表于 2015-5-31 12:52
沒有用,除非你關閉全局
他的優先度是全局 > input > 表單驗證
为了这个问题我都换了好几个编辑器了!
看来就是这个问题了,
如果关闭xxs的话。
是否需要使用转义函数了呢
例如encode_php_tags
v阿杰 发表于 2015-5-31 13:28
为了这个问题我都换了好几个编辑器了!
看来就是这个问题了,
如果关闭xxs的话。
不,你可以這樣做:
1. 關閉全局 XSS
2. 所有 POST / GET/ COOKIE 都上第二參數 = TRUE
3. 針對富文本的 POST 值的第二參數 = FALSE
4. 過濾富文本的內容進行轉義
页:
[1]