那么有什么类似的办法能解决呢 ?  .Net 怎么解决的阿?   在第二个页面我也不是不验证  只不过是为了更好的方便用户而已

解决方案 »

  1.   

    dotNET是隐藏传递了postback消息~~~PHP的话使用PEAR就可以简单实现~~~http://www.cnblogs.com/mikespook/archive/2005/03/02/111758.html
      

  2.   

    用javascript呢?
       把验证码的值放在hidden里,提交前用javascript验证一下
    <?php
       $yanzhengma=Generate();//服务器生成验证码
    <html>
    <head>
       <script language="javascript">
       function Validator()
      {
         var rigthvalue=document.right.value;
         var inputvalue=document.form1.t1.value;
         if(inputvalue!=rightvalue)
         {
           alert("验证码错误");
           return false;//不提交submit
         }
        return true;
      }
       </script>
    </head><body>
       <form method="post" name="form1" onSubmit="return Validator()">//提交时用Validator()检验验证码,如果不同则取消submit
       <input name="inputvalue" type="text">  //输入验证码
       <input type="hidden" name="rightvalue" value="<? echo $yanzhengma; ?>"> //把服务器生成的验证码写入隐藏变量
       </form>
       </body>
    </html>
    ?>
      

  3.   

    第二个页面不就可以用session了吗?
      

  4.   

    是呀 第二个页面使用session来验证的阿  那么第一个页面呢 ?  怎么在第一个页面里得到那个验证码的值呢
      

  5.   

    第二个页面验证了也是有漏洞的
    因为你可以在客户端比如通过javascript判断验证码是否正确,是建立在客户端能够知道本次的正确值是什么.
    那同样别人也可以知道本次的正确值是什么,进而提交到第二个页面去判断!结果当然是对的.
    Chinaren以前就有类似的逻辑错误
      

  6.   

    第二个页面即使做判断也是有漏洞
    你可以在客户端用javascript判断验证码正确与否,也就意味着通过分析,别人在客户端得到正确的验证码,进而提交到第二个页面,结果会是什么,当然第二个页面会认可这个值!
    chinaren以前就出过类似的逻辑错误
      

  7.   

    图形码的字用seesion保存,然后把这个session和用户提交的字符对比用js检查等于没有检查。
      

  8.   

    我只不过想吧那个Session值隐藏的传送过来 
    象mikespook(懒猫开始新生活) 说的那样 基本上象是 “dotNET隐藏传递postback消息~~~” 的方式