| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1806 人关注过本帖
标题:求助 单引号问题
只看楼主 加入收藏
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
收藏
得分:0 
呵呵,我正想知道,愿闻其详
2005-12-06 15:49
zmjls
Rank: 1
等 级:新手上路
帖 子:377
专家分:0
注 册:2005-9-30
收藏
得分:0 
1.str=replace(str,"'","‘")
2.str=replace(str,chr(39),"’")
3.str=replace(str,",",",")
上面我标的红色的:3个做法很有可能是错误的。因为引起SQL中的语句不总是单引号,再扩大一点,引起问题的不是任何单独的符号,这样子的过滤,有些冤枉单引号了。正确的利用注入,重要的一点是hxfly你必须闭合SQL语句,往往是得先正确地闭合前面一个条件,因为我们可能会在同一句里面引入新的条件,补救措施只要破坏注入条件应该就可以了,但是考虑到其复杂性,最好还是较为完整的限制一下输入的字符种类。
几个看起来是没有什么问题的,但潜在的会带来一些隐患。这很容易给人造成的一个错觉是,我对输入的字符串已经很有效的做过处理了,以后使用没有什么问题。这句话没有错,对字符串来说这样做也是很正确的,但是他扮演了一个不光彩的角色,试想一下,如果过滤后的字符串放进了数据库,而后续的语句有直接拿出来使用的,这种对前面过滤的依赖性,是不是正确的呢?我想,黑客大哥就是从这里进入的.
还有还要考虑数据的类型问题!!
hxfly:我解释得清楚吗?不知道你是否能够理解我说的呢?

对ASP、.NET、SQL情有独钟的情圣王子! 俺目标:睡觉睡到自然醒数钱数到手抽筋!
2005-12-06 15:57
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5810
专家分:118
注 册:2005-4-7
收藏
得分:0 
请继续解释一下str=server.HTMLEncode(str)漏洞


还有,用‘来代替'应该不会涉及到SQL的闭合性问题,因为’不会对SQL语句产生任何影响

[此贴子已经被作者于2005-12-6 16:01:47编辑过]


2005-12-06 16:00
zmjls
Rank: 1
等 级:新手上路
帖 子:377
专家分:0
注 册:2005-9-30
收藏
得分:0 
还有我想更新一下盖茨他爹---头衔:正人君子的说法:
我觉得应该把你的这句
str=replace(str,"'","""")
改成:
str = replace(request("str"), "'", "''")
为了考虑系统的安全,我不主张你这样写!!
你觉得呢?

对ASP、.NET、SQL情有独钟的情圣王子! 俺目标:睡觉睡到自然醒数钱数到手抽筋!
2005-12-06 16:01
zmjls
Rank: 1
等 级:新手上路
帖 子:377
专家分:0
注 册:2005-9-30
收藏
得分:0 
以下是引用hxfly在2005-12-6 16:00:00的发言:
请继续解释一下str=server.HTMLEncode(str)漏洞


还有,用‘来代替'应该不会涉及到SQL的闭合性问题,因为’不会对SQL语句产生任何影响

我想问一下:你的str里存放的内容是什么?
说了,我再给你分析分析!!


对ASP、.NET、SQL情有独钟的情圣王子! 俺目标:睡觉睡到自然醒数钱数到手抽筋!
2005-12-06 16:03
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5810
专家分:118
注 册:2005-4-7
收藏
得分:0 
str = replace(request("str"), "'", "''")
我曾经也这样写过,还要提醒楼上的,我是把半角的引号替换成全角的引号,那样会出现SQL闭合性问题吗?
还有,如果单独用str = replace(request("str"), "'", "''")
这样能过滤脚本引起的安全性吗?

2005-12-06 16:05
zmjls
Rank: 1
等 级:新手上路
帖 子:377
专家分:0
注 册:2005-9-30
收藏
得分:0 
以下是引用hxfly在2005-12-6 16:05:00的发言:
str = replace(request("str"), "'", "''")
我曾经也这样写过,还要提醒楼上的,我是把半角的引号替换成全角的引号,那样会出现SQL闭合性问题吗?
还有,如果单独用str = replace(request("str"), "'", "''")
这样能过滤脚本引起的安全性吗?

请你好好的看看我给你的解释!!
你不觉得你上面回答的有问题吗?
不相信也没有关系,我是相信我事实的证明的!!
科学理论加真实的实践!
而不是理论和想象!
明白吗?


对ASP、.NET、SQL情有独钟的情圣王子! 俺目标:睡觉睡到自然醒数钱数到手抽筋!
2005-12-06 16:11
zhouyang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-12-6
收藏
得分:0 

多谢多谢zmjls!!!
真的是高手啊,真是佩服!!
为什么不让他来当ASP版块的版主呢?


2005-12-06 16:14
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5810
专家分:118
注 册:2005-4-7
收藏
得分:0 
让谁做斑竹是大家选举产生的
你可以看看这个版的版志

欢迎你下次斑竹选举的时候来投一票

不过高手好象还没有解释我的问题

楼上的
如果你说我二楼的方法不可取
请说出理由来

如果你说那个方法冤枉了单引号,请给出不冤枉单引号的方法


我个人认为所有的方法,如果不冤枉单引号,就解决不了这个问题

即使是replace,更是冤枉了单引号

2005-12-06 16:18
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5810
专家分:118
注 册:2005-4-7
收藏
得分:0 
以下是引用zmjls在2005-12-6 16:11:00的发言:

请你好好的看看我给你的解释!!
你不觉得你上面回答的有问题吗?
不相信也没有关系,我是相信我事实的证明的!!
科学理论加真实的实践!
而不是理论和想象!
明白吗?

我看了你的解释才不明白为什么把半角单引号替换成全角单引号会出现SQL不闭合的问题的


2005-12-06 16:21
快速回复:求助 单引号问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017691 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved