遇到一个奇葩的 js 验证,求破解 - V2EX
hanmeimei

遇到一个奇葩的 js 验证,求破解

  •  
  •   hanmeimei Oct 7, 2016 4378 views
    This topic created in 3509 days ago, the information mentioned may be changed or developed.

    最近学习 js 来填写表单。遇到一个奇怪的表单,我如果是人工输入邮箱账号,或者粘贴,都是可以通过验证。如果是通过代码填写邮箱,都显示不通过。请问这个编码是如何写验证的?如果通过 js 填表,如何绕过验证?求大神,指导。

    Supplement 1    Oct 7, 2016
    这个地方在这里: https://app.meiqia.com/setting/profile 需要先登入账号,然后转到上面这个链接。有个修改邮箱的地方。这个何解?
    19 replies    2016-10-08 16:22:58 +08:00
    finalspeed
        1
    finalspeed  
       Oct 7, 2016 via Android
    可能 你看到的只是显示,还有另一个标签正真做验证
    ZhaoMiing
        2
    ZhaoMiing  
       Oct 7, 2016
    目测数据层没有同步,手动触发一下 change 事件?
    ykrl089
        3
    ykrl089  
       Oct 7, 2016
    键盘输入比对,这是我想到最简单的办法
    helloccav
        4
    helloccav  
       Oct 7, 2016
    目测是 js 绑定事件的问题,通过代码输入的话无法触发相应的验证事件。
    Kokororin
        5
    Kokororin  
       Oct 7, 2016
    if ("createEvent" in document) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);
    }
    else
    element.fireEvent("onchange");
    hanmeimei
        6
    hanmeimei  
    OP
       Oct 7, 2016
    @helloccav 那么如何通过代码自动设置让其看起来像触发一样。
    hanmeimei
        7
    hanmeimei  
    OP
       Oct 7, 2016
    @ZhaoMiing 手动点击不行,需要随便按下键盘字母。就可以了,复制粘贴。或者邮件粘贴也是可以的。
    hanmeimei
        8
    hanmeimei  
    OP
       Oct 7, 2016
    @Kokororin 感谢,这个代码。明天电脑试一试。。有办法移除检测触发的代码不?
    Kokororin
        9
    Kokororin  
       Oct 7, 2016
    @hanmeimei 分析下他的提交代码,然后自己写个提交吧
    ZhaoMiing
        10
    ZhaoMiing  
       Oct 7, 2016
    @hanmeimei 「手动触发」的意思是 .val('abc').trigger('change'),不是点击
    hanmeimei
        11
    hanmeimei  
    OP
       Oct 7, 2016
    @ZhaoMiing 试过,不是。上面有网址,有时间可以测试一下。
    ZhaoMiing
        12
    ZhaoMiing  
       Oct 8, 2016   1
    @hanmeimei 看了一下页面用了 react ,更改 input 的 value 时数据没有同步到对应的组件 state 里去。由于没有 jQuery 只能这样触发 change 事件了。
    var event = new Event('input', { bubbles: true });
    document.querySelector('#newEmail').dispatchEvent(event);
    jprovim
        13
    jprovim  
       Oct 8, 2016
    静观大牛的各种解法.
    mathcoder23
        14
    mathcoder23  
       Oct 8, 2016
    直接新建一个提交方便吗?
    indooorsman
        15
    indooorsman  
       Oct 8, 2016 via Android
    keyup keydown input 这些事件挨个触发一遍
    Kokororin
        16
    Kokororin  
       Oct 8, 2016
    测试可行,能够收到邮件,但是后端还是有做邮件地址的验证
    var getCookie = function(name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length == 2) return parts.pop().split(";").shift();
    }
    fetch('https://app.meiqia.com/api/agent/agents/' + getCookie('_agent_id') + '?v=' + new Date().getTime(), {
    method: 'put',
    headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: getCookie('_authenticated')
    },
    body: JSON.stringify({
    email: '[email protected]'
    })
    })
    .then(function(response) {
    return response.json()
    })
    .then(function(json) {
    console.log(json)
    })
    hanmeimei
        17
    hanmeimei  
    OP
       Oct 8, 2016
    @Kokororin 牛叉。可以使用。但是这个是如何知道表单是这样子触发的呢?
    hanmeimei
        18
    hanmeimei  
    OP
       Oct 8, 2016
    @ZhaoMiing 亲测可用。感谢。这个 even 是怎么抓取到的呢?我找不到
    Kokororin
        19
    Kokororin  
       Oct 8, 2016 via iPhone   1
    @hanmeimei 点提交的时候在 network 里可以看到
    About     Help     Advertise     Blog     API     FAQ     Solana     2986 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 63ms UTC 12:49 PVG 20:49 LAX 05:49 JFK 08:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86