设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
CI将多个空格及引号识别为Disallowed Key Characters ...
1
2
/ 2 页
下一页
返回列表
查看:
7265
|
回复:
14
[已解决]
CI将多个空格及引号识别为Disallowed Key Characters
[复制链接]
haimi
haimi
当前离线
积分
146
IP卡
狗仔卡
发表于 2011-2-11 10:51:53
|
显示全部楼层
|
阅读模式
测试环境:xampp1.73,html编辑器ckeditor+ckfinder,客户端jquery,CI是1.73。
在用jquery的ajax-post提交textarea中的中文文本,经过多次仔细比对后发现,CI将多
个空格、单引号、双引号之后的数据全部删除,或者干脆提示“Disallowed Key
Characters”。
查看本站帖子后怀疑是内建的过滤非法字符机制造成的,于是按照帖子中的方法将
config和input类修改,但依然如故!
请教该如何解决?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
Hex
Hex
当前离线
积分
50165
IP卡
狗仔卡
发表于 2011-2-11 11:17:16
|
显示全部楼层
是 Input.php 文件中的 _clean_input_keys() 函数造成的。
你可以修改这个源码,或者扩展 Input 类。
回复
支持
反对
使用道具
举报
显身卡
haimi
haimi
当前离线
积分
146
IP卡
狗仔卡
楼主
|
发表于 2011-2-11 11:19:32
|
显示全部楼层
我已经使用本站帖子中的方法修改过了,依然如故!
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50165
IP卡
狗仔卡
发表于 2011-2-11 11:24:19
|
显示全部楼层
修改了就不应该提示 Disallowed Key Characters 了。
并且,你肯定要修改 Input.php 才可能去掉 CI 的过滤,但是去掉过滤你就要自己保证安全了。
PS: 我为什么没碰到楼主的问题呢?CI 的用户手册也是用的 POST 提交,毫无问题。
回复
支持
反对
使用道具
举报
显身卡
haimi
haimi
当前离线
积分
146
IP卡
狗仔卡
楼主
|
发表于 2011-2-11 11:32:35
|
显示全部楼层
现在不提示Disallowed Key Characters,但多个空格及引号后的字符仍然被自动删除!?
我是新手,如果要在input中多匹配这些字符该怎么写?
谢谢!
回复
支持
反对
使用道具
举报
显身卡
bluelomo
bluelomo
当前离线
积分
136
IP卡
狗仔卡
发表于 2011-2-11 11:41:37
|
显示全部楼层
是不是和开启XSS_Clean有关?关掉试试?
回复
支持
反对
使用道具
举报
显身卡
haimi
haimi
当前离线
积分
146
IP卡
狗仔卡
楼主
|
发表于 2011-2-11 11:50:44
|
显示全部楼层
“var $use_xss_clean = FALSE;”这是关闭了吧
我现在终于发现了,在html编辑器中空格和引号及一部分字符的html代码都是以“&”开头的,CI会自动清除,并且终止php程序运行!
请问各位大哥,该如何是好!是要改正则表达式还是修改html编辑器呢,请详细介绍下方法!
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50165
IP卡
狗仔卡
发表于 2011-2-11 13:07:02
|
显示全部楼层
回复
7#
haimi
这肯定不是 CI 给你去掉的,因为我这里没这个问题,你可以看看
http://codeigniter.org.cn/user_guide
,我用的是 1.7.2 版本。
回复
支持
反对
使用道具
举报
显身卡
haimi
haimi
当前离线
积分
146
IP卡
狗仔卡
楼主
|
发表于 2011-2-11 15:10:05
|
显示全部楼层
我看了手册似乎对这个问题没有多大帮助啊!
jquery-post提交时firebug显示数据是完整的,我的js提交部分代码:
var pretext=tertext.getData();获取ckeditor中的html
var pre_id=……
var kc_id=……
if (pretext!=''){
$.ajax({
type: "POST",
url: "..",
data:"pretext="+pretext+"&pre_id="+pre_id+"&kc_id="+kc_id,
dataType: "json", (data这样书写不知是否正确?)
success: function(data){……}
我换用kindeditor居然也是这个结果?例如输入英文“<>”就会被删除
回复
支持
反对
使用道具
举报
显身卡
haimi
haimi
当前离线
积分
146
IP卡
狗仔卡
楼主
|
发表于 2011-2-11 15:12:00
|
显示全部楼层
补充,英文“<>”的在ckeditor中自动转换为“<>“,因为包含“&”导致程序自动终止
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页