6/27 工作日志 SQL stored procedure里面的SQL injection prevetion

35 篇文章 0 订阅
16 篇文章 0 订阅

今天给error form里面增加了一项comment栏,是个textbox input,先是加了个column,改了改asp code,增加了长度的validation(用onKeyUp属性)。

其他的用的好好的,做test的时候单引号又不行了,我就开始纠结,寻思怎么着stored procedure不应该自动屏蔽么,之前我不用都自动把参数改了,很奇怪,于是和anna讨论了小会,回去自己搜,找到一个答案(http://stackoverflow.com/questions/11682267/sql-server-stored-procedure-single-quotes,看第二个),人家说是你在stored procedure里面用的sql string concatenation不对,应该用quote函数,于是我就搜了下quote函数,是把string两端加上或单引号或双引号或中括号的函数(http://msdn.microsoft.com/en-us/library/ms176114.aspx),默认是中括号。中括号在SQL里面是column的意思,所以又是错,于是改了单引号,用四个''''成功。

之前的code用parameterization用的不对的:

', comments = '' ' + @comments + ' ''' 

之后的正确的用法:

', comments = ' + quotename(@comments,'''') + ' '

另外就是今天看了五分钟球,俄罗斯翻盘局,被wendy看到了,叫了名字摇了摇头,哎我真是点背,又被抓到了,真他玛的倒霉,我明明看她不在的,啥时候回来的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值