Ver código fonte

[fix] csrf for open_url_post

version-14
Anand Doshi 9 anos atrás
pai
commit
17f911c6dc
2 arquivos alterados com 7 adições e 1 exclusões
  1. +6
    -1
      frappe/auth.py
  2. +1
    -0
      frappe/public/js/legacy/handler.js

+ 6
- 1
frappe/auth.py Ver arquivo

@@ -61,7 +61,12 @@ class HTTPRequest:
# not via boot # not via boot
return return


if frappe.local.session.data.csrf_token != frappe.get_request_header("X-Frappe-CSRF-Token"):
csrf_token = frappe.get_request_header("X-Frappe-CSRF-Token")
if not csrf_token and "csrf_token" in frappe.local.form_dict:
csrf_token = frappe.local.form_dict.csrf_token
del frappe.local.form_dict["csrf_token"]

if frappe.local.session.data.csrf_token != csrf_token:
frappe.local.flags.disable_traceback = True frappe.local.flags.disable_traceback = True
frappe.throw(_("Invalid Request"), frappe.CSRFTokenError) frappe.throw(_("Invalid Request"), frappe.CSRFTokenError)




+ 1
- 0
frappe/public/js/legacy/handler.js Ver arquivo

@@ -86,6 +86,7 @@ function open_url_post(URL, PARAMS, new_window) {
if(new_window){ if(new_window){
temp.target = '_blank'; temp.target = '_blank';
} }
PARAMS["csrf_token"] = frappe.csrf_token;
for(var x in PARAMS) { for(var x in PARAMS) {
var opt=document.createElement("textarea"); var opt=document.createElement("textarea");
opt.name=x; opt.name=x;


Carregando…
Cancelar
Salvar