最近正好网站发现这样的情况。就是有用户做了软件,用软件来模拟页面进行提交数据!由于业务的需要,需要禁止用户做这样的事情怎样做比较好?提交按扭按下去时用request.url判断是否停留在当前页面有用么??或者还有其它的办法么?

解决方案 »

  1.   

    基本上没法防止.你只能从验证提交的数据本身是否符合要求
    以及限制同一IP在短期内提交数据的次数等方面来处理.
    另外加上验证码,来限制提交数据的速度.判断referer url是没用的.
      

  2.   

    UI元素的Id动态的,应该很难外挂,例如:
    <span id="BoundMaterialInBillId4686" DataField="MaterialInBillId" onmouseover="showPop(this)" onmouseout="nonePop(this)" MaxLength="14"></span>
      

  3.   

    判断referer url,只起到防盗链的作用,但是和别人用软件来模拟页面进行提交数据没有一点关系。如果想防止这种情况发生,建议用js验证的同时并且要通过服务器验证才让它的请求通过,要不就阻断其请求。
      

  4.   

    UI元素的Id动态的,应该很难外挂,例如:
    ==========
    动态ID我想过,那程序里获取呢?也动态咯?
      

  5.   

    UI元素的Id动态的 我们一样挂 最近刚好在做群发的项目
    在页面上某个图片或者什么资源文件 里面做文章 比如正常情况下访问表单页面的某个小图片 你写个session带着表单一起提交 这样找起来就很困难了 当然要是有耐心一样可以破~~
      

  6.   

    你把Id看做变量而不是常量就可以了,
    我们在开发的时候并不直接接触UI,而是建模,页面由架构渲染,所以Id自然可以是动态的,于是意外的发现可以在一定程度上防止外挂
      

  7.   

    客户端用activex获取用户网卡地址(限制此网卡地址登陆次数)+验证码
      

  8.   

    可以试试判断当前访问者是否通过浏览器访问,     
    HttpBrowserCapabilities yourBrowser = Request.Browser;
    string MyBrowser = string.Empty;
    MyBrowser = yourBrowser.Browser;
    if (string.IsNullOrEmpty(MyBrowser))
    {
      Response.Write("您的操作非法!");
      Response.End();
     }
      

  9.   

    可行,但对用户的禁止,时间不能太长,我们用的基本都是动态IP,猫一关,重新打开,又是新的。如果对一IP过长禁止,会影响到其它用户