【发布时间】:2021-01-02 14:16:38
【问题描述】:
我今天为此苦苦挣扎了一整天,我发现了这个http://greasemonkey.win-start.de/patterns/override-method.html,但它的准确率只有 50%,所以我决定分享这个解决方案,因为它可能对 csrf 实现有用。
【问题讨论】:
标签: javascript forms submit csrf
我今天为此苦苦挣扎了一整天,我发现了这个http://greasemonkey.win-start.de/patterns/override-method.html,但它的准确率只有 50%,所以我决定分享这个解决方案,因为它可能对 csrf 实现有用。
【问题讨论】:
标签: javascript forms submit csrf
任何类型的表单提交解决方案:
// form.submit() js调用代码https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit
HTMLFormElement.prototype._submit = HTMLFormElement.prototype.submit;
function newSubmit() {
//add code here
this._submit();
}
HTMLFormElement.prototype.submit = newSubmit;
//点击按钮类型提交代码https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/requestSubmit
function newRequestSubmit(submitter) {
if (submitter.srcElement.tagName === "FORM") {
// add code here
}
}
document.body.addEventListener("submit", newRequestSubmit);
对于 csrf 实现,通过在标头中设置 csrf,覆盖 XMLHttpRequest.prototype.open 在 ajax 请求的情况下也很有用:https://stackoverflow.com/a/56499250/7309871
【讨论】: