fix: restrict state-changing whitelisted endpoints to POST (#56858)

Add methods=["POST"] to 50 whitelisted functions that create or modify
documents (get_doc followed by insert/save/submit), so they can no
longer be invoked via GET requests.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
rohitwaghchaure
2026-07-03 18:47:13 +05:30
committed by GitHub
parent 9c911438f1
commit 341a07dffa
38 changed files with 52 additions and 52 deletions

View File

@@ -1007,7 +1007,7 @@ def get_children(doctype: str, parent: str | None = None, company: str | None =
)
@frappe.whitelist()
@frappe.whitelist(methods=["POST"])
def add_node():
from frappe.desk.treeview import make_tree_args
@@ -1118,7 +1118,7 @@ def get_billing_shipping_address(
return {"primary_address": primary_address, "shipping_address": shipping_address}
@frappe.whitelist()
@frappe.whitelist(methods=["POST"])
def create_transaction_deletion_request(company: str):
frappe.only_for("System Manager")

View File

@@ -95,7 +95,7 @@ def get_children(
return frappe.get_all("Department", fields=fields, filters=filters, order_by="name")
@frappe.whitelist()
@frappe.whitelist(methods=["POST"])
def add_node():
from frappe.desk.treeview import make_tree_args

View File

@@ -432,7 +432,7 @@ def deactivate_sales_person(status: str, employee: str):
frappe.db.set_value("Sales Person", sales_person, "enabled", 0)
@frappe.whitelist()
@frappe.whitelist(methods=["POST"])
def create_user(employee: str, email: str | None = None, create_user_permission: int = 0) -> str:
emp = frappe.get_doc("Employee", employee)
emp.check_permission("write")