您的位置:首页 > 数据库

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

2014-06-27 05:04 471 查看
今天给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看到了,叫了名字摇了摇头,哎我真是点背,又被抓到了,真他玛的倒霉,我明明看她不在的,啥时候回来的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: