比如登录时提交: username, md5(password),
欺骗者监听到这个http请求后,即使不知道密码,也可以轻易伪造一次登录,只要发送监听到的这个表单即可。大家是怎么做的呢?web安全http请求欺骗

解决方案 »

  1.   

    输入密码->传送->网络->接收->md5->比较密码如果需要相对安全的登录,就是向客户端发送(并安装)一个编译后的控件,用控件加密再发送
    服务器端用逆向解密再md5之类(银行、淘宝等等大概就是这样做的)
    但这样也只是防止传送和接收之间的监听,无法阻止输入密码到传送之间的监听
      

  2.   

    他不知道密码怎么登录得了呢,你要是怕他不断地用程序试影响服务器的话,可以限制他的IP登录次数,比如登录5次失败就只能2小时后再登录.$ip = $_SERVER['REMOTE_ADDR']; //这个IP很准的,很难仿制,除非使用代理软件,那样成本大,别人就放弃了
      

  3.   

    没什么用,是http的,这样请求被监听了,那怎么都可以模拟登陆进行攻击了。
    如果,这个是客户端被监听的,那就要那个用户自行杀毒检查了,而不是从代码解决。
    而如果是你的网站被跨站攻击等,数据被监测到,那就要从你的数据展示那个层面处理。
      

  4.   

    passwd  ->hash之后,在和时间戳、随机数,再来两次hash(sina登陆就这样的)
      

  5.   

    1 对referer做判断(可以被伪造)2 对user-agent做判断(可以被伪造)3 每次访问页面时在页面的角落的一个hidden域中生成个formhash,生成算法跟session_id有关、username相关。把formhash一起post过去,服务器端验证formhash是否正确。discuz就这么做的(模拟登陆分两次进行,先随便请求一下页面,正则匹配出formhash,再将抓到的formhash一起post过去就可轻松绕过)4 使用https协议(有的工具连https包也能抓到,我自己就用过一个)5 验证码(这个是比较靠谱的解决方案,除非对方的ocr控件非常强大或者本身是图像分析的高手,我一般遇到验证码就直接放弃了)以上几点只有第5点靠谱。
    话说回来,一般能这样监听,都是在登陆者本机。那在你眼皮子底下这样干,还不如在你机器上装个键盘记录器。
    不过以前听说在局域网中,任意一台机器将自己的网卡设置为混乱模式,就可以监听到所有局域网内的信息。应该是netbios协议的漏洞。没尝试过这个。另外,局域网网关是可以监听到所有请求的,这个没办法,你必须经过那个网关出口。
      

  6.   

    cookies + password 双重认证。