不要相信客户端的输入

同步自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记录中出现

他会毫不犹豫的抛出异常

最后扯淡一会,其他技术总是让你弄清楚风险,而微软的技术大多都是让你生活在温室之中,很难说谁好谁坏。另附,微软声明不会退出中国市场。

800px-Microsoft_Sign_on_German_campus

原文地址:https://www.cnblogs.com/jicheng1014/p/1648580.html