同步自atpking.com
很难理解这句话原来这么牛X
今天看书的时候,举了一个不错的例子
<select name="city" > <option value='Chicago'>芝加哥</option> <option value='NewYork'>扭腰</option> <option value='Peking'>帝都</option> </select>
看起来 在form读取的时候
form[city] 最多会有 Chicago Newyork或 Peking 三个值
但是,
不幸的是,html传输的时候全靠get & post
此处如果有伪造post提交
比如 form city ==> Chicago;delete from users
那就会被爽歪歪了
当然,当你使用微软的dropdownlsit 的时候会神奇般的避免这种被注入的风险
因为微软已经在viewstate 中记录了select 的值,在后台上使用的
dropdownlist.SelectedValue 是需要对比之前的viewstate,若此时出现的值没有在viewstate记录中出现
他会毫不犹豫的抛出异常
最后扯淡一会,其他技术总是让你弄清楚风险,而微软的技术大多都是让你生活在温室之中,很难说谁好谁坏。另附,微软声明不会退出中国市场。