作者TonyQ (骨头)
看板Database
标题Re: [SQL ] SQL Injection
时间Fri Jul 21 23:21:20 2006
※ 引述《razor (=_=)》之铭言:
: ※ 引述《TonyQ (骨头)》之铭言:
: : 不过我看过有些处理法是透过ResultSet(JSP)或DataSet(ASP)去新增资料,
: : 就没这个问题,但是又好像不是都能这麽用。
: 在未告知的情况下,把'去掉是不对的;
是的,不过一般而言,
我会这麽处理的都是不应该会出现'这符号的栏位,
ex.帐号密码..在撰写的时候就要求它不能输入',
虽然这些可以用JavaScript作页面上的过虑,
但是难防从网址上直接带过来的参数闯关。
: 通常容许使用者在输入文字中可带有'符号.
: 为了避免'符号造成句子结构的破坏,会用到escape sequence,
程式语言的部份这是我知道的
我想问的是单就SQL语法而言里面有没有特别处理的方式。
因为我试过 \' 在SQL好像不吃。@0@
: 在许多程式语言都有这个要素,在ASP的VBScript字串中是使用''来表示'符号.
: 而ResultSet或DataSet是另一种处理法,
: 它的确把使用者输入的资料完全当做资料栏位来处理,
: 而不是将输入文字合并为SQL而暴露出弱点.
是,但是好像不见得都支援这种作法,
之前碰到问题的时候,印象中是透过DataSet update的时候,
资料库不支援我给的资料...
当时我卡在这问题上蛮久的,不过已经忘记确实的问题是长甚麽样子了,(汗)
想找也曾经踢过这个铁板的夥伴,能够说一下当时的解法,以供晚辈参考。
还是说有没有相关的参考范例,可以让晚辈我参考一下^^?
这只是个心中长久的迷惑 XD
--
String temp="relax"; | Life just like programing
while(buringlife) String.forgot(temp); | to be right or wrong
while(sleeping) brain.setMemoryOut(); | need not to say
stack.push(life.running); | the complier will
stack.push(scouting.buck()); | answer your life
stack.push(bowling.pratice()); | Bone
everything
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.240.58