• 不要相信客户端的输入


    同步自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

  • 相关阅读:
    分布式系统简介
    java.lang.Object 之 clone() 深拷贝,浅拷贝
    粉丝裂变活动bug
    遇到的bug
    移动端fixed定位在底部,出现键盘后消失
    窗口关闭,打开新页面,刷新等总结
    input 手机数字键盘
    正则重温(学习笔记)
    input的表单验证(不断更新中~~)
    css 不大常见的属性(不断更新中...)
  • 原文地址:https://www.cnblogs.com/jicheng1014/p/1648580.html
Copyright © 2020-2023  润新知