我正在尝试使用curl登录到https://shopee.co.id/,并且当我使用它登录时总是需要csrf令牌,现在csrf令牌是gWLIg6tckGVkgWcLkhs2CE5FqRcoeyfr
但是它可能会在未来。我已经尝试了几件事来获取csrf令牌,首先我尝试查看源代码,它不起作用,源代码中没有写入csrf令牌,我在chrome开发人员工具上尝试了inspect元素,并且没有csrf令牌无论是。该令牌仅出现在chrome开发人员工具的应用程序选项卡中。我如何找到可以获得该网站的csrf令牌的位置?我很抱歉这个问题,我不是程序员,请耐心等待。
答案 0 :(得分:0)
此网站上的csrf令牌只是从https://cdngarenanow-a.akamaihd.net/shopee/shopee-pcmall-live-id/assets/bundle.fe75b5765ae80df28c1f.js浏览器中运行的javascript中随机生成,并且有2个要求:它必须长度为32个字符,并且由ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
中的字符组成 - 其他除此之外,似乎没有任何要求,所以只需要做点什么,例如AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
。
生成实际csrf标记的代码是
return e || i("csrftoken", e = function(e, n) {
n = n || "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var a = "", r = 0; r < e; r++) {
var t = Math.floor(Math.random() * n.length);
a += n.substring(t, t + 1)
}
return a
}(32), 0), e
}
换句话说,在这个网站上,您决定了csrf令牌是什么,服务器没有。对我来说,这是令人惊讶和非常不寻常的。 (可能很脆弱?我不确定,还没有给它足够的思考)