V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caobug
V2EX  ›  前端开发

如何防止用户模拟提交表单?

  •  
  •   caobug · 2015-07-26 17:47:33 +08:00 · 3256 次点击
    这是一个创建于 3442 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个简单粗暴的方法:打开页面服务器传输一个 token 到前端,前端在提交表单时必须带上这个 TOKEN。不过我们在模拟提交表单前,可以先请求服务器拿回 TOKEN,然后再提交。。就特么畅通无阻了。

    我真的想不出好方法了!!

    Septembers
        1
    Septembers  
       2015-07-26 18:24:47 +08:00
    做个浏览器插件,注 意 不 是 拓 展
    Yo_oY
        2
    Yo_oY  
       2015-07-26 19:15:14 +08:00
    验证码?
    publicID001
        3
    publicID001  
       2015-07-26 19:27:50 +08:00
    多因素验证
    比如:由你自己生产的密码键盘 + 由你自己生产的OTP发生器 + 由你自己生产的指纹验证器

    理论上因素越多验证伪造难度越大 但是无法彻底解决伪造(纯理论层面)

    BTW:不要讲量子通信 我觉得LZ没这个能力
    qw7692336
        4
    qw7692336  
       2015-07-26 19:42:02 +08:00 via Android
    楼主的这个方案可以防止csrf,防止模拟表单最常见的方式就是验证码
    breeswish
        5
    breeswish  
       2015-07-26 20:30:20 +08:00
    验证码,行为因素判断…复杂的算法生成递交串…(然而想破解还是可以破解的
    caobug
        6
    caobug  
    OP
       2015-07-27 13:39:45 +08:00
    让用户输入验证码这不大友好哦,谢谢楼上兄弟们的回答。我去研究下新浪的登录和视频网站的加密算法,看能不能找到让攻击成本高一点的方法~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2389 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:46 · PVG 23:46 · LAX 07:46 · JFK 10:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.