Add CSRF protection to payment endpoints
This commit is contained in:
+10
-2
@@ -15,7 +15,7 @@ from .vars import (
|
|||||||
STOCK_RESERVATION_MINUTES,
|
STOCK_RESERVATION_MINUTES,
|
||||||
)
|
)
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt, csrf_protect
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -1185,7 +1185,7 @@ def stripe_config(request):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@csrf_exempt
|
@csrf_protect
|
||||||
def create_checkout_session(request: HttpRequest):
|
def create_checkout_session(request: HttpRequest):
|
||||||
if request.method != "POST":
|
if request.method != "POST":
|
||||||
return JsonResponse({"error": "Método no permitido"}, status=405)
|
return JsonResponse({"error": "Método no permitido"}, status=405)
|
||||||
@@ -1524,6 +1524,7 @@ def paypal_execute(request: HttpRequest):
|
|||||||
# ==================== STRIPE PAYMENT INTENTS ====================
|
# ==================== STRIPE PAYMENT INTENTS ====================
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def crear_payment_intent(request: HttpRequest):
|
def crear_payment_intent(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Crea un Stripe PaymentIntent para el carrito actual.
|
Crea un Stripe PaymentIntent para el carrito actual.
|
||||||
@@ -1607,6 +1608,7 @@ def crear_payment_intent(request: HttpRequest):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def confirmar_pago_tarjeta(request: HttpRequest):
|
def confirmar_pago_tarjeta(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Verificar que el PaymentIntent fue exitoso y crear el pedido.
|
Verificar que el PaymentIntent fue exitoso y crear el pedido.
|
||||||
@@ -1680,6 +1682,7 @@ def confirmar_pago_tarjeta(request: HttpRequest):
|
|||||||
# ==================== PAYPAL ORDERS API ====================
|
# ==================== PAYPAL ORDERS API ====================
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def crear_orden_paypal(request: HttpRequest):
|
def crear_orden_paypal(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Crea una orden de PayPal con el total del carrito actual (Orders API v2).
|
Crea una orden de PayPal con el total del carrito actual (Orders API v2).
|
||||||
@@ -1733,6 +1736,7 @@ def crear_orden_paypal(request: HttpRequest):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def capturar_orden_paypal(request: HttpRequest):
|
def capturar_orden_paypal(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Captura una orden de PayPal aprobada y crea el pedido en nuestra BD.
|
Captura una orden de PayPal aprobada y crea el pedido en nuestra BD.
|
||||||
@@ -1843,6 +1847,7 @@ def agregar_tarjeta(request: HttpRequest):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def crear_setup_intent(request: HttpRequest):
|
def crear_setup_intent(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Crea un Stripe SetupIntent y retorna el client_secret para que el frontend
|
Crea un Stripe SetupIntent y retorna el client_secret para que el frontend
|
||||||
@@ -1867,6 +1872,7 @@ def crear_setup_intent(request: HttpRequest):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def confirmar_setup_intent(request: HttpRequest):
|
def confirmar_setup_intent(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Tras la confirmación del SetupIntent en el frontend, guarda la tarjeta.
|
Tras la confirmación del SetupIntent en el frontend, guarda la tarjeta.
|
||||||
@@ -1968,6 +1974,7 @@ def agregar_paypal(request: HttpRequest):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def crear_orden_paypal_setup(request: HttpRequest):
|
def crear_orden_paypal_setup(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Crea una orden PayPal de 0.01 € para verificar/guardar la cuenta.
|
Crea una orden PayPal de 0.01 € para verificar/guardar la cuenta.
|
||||||
@@ -1984,6 +1991,7 @@ def crear_orden_paypal_setup(request: HttpRequest):
|
|||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_protect
|
||||||
def capturar_orden_paypal_setup(request: HttpRequest):
|
def capturar_orden_paypal_setup(request: HttpRequest):
|
||||||
"""
|
"""
|
||||||
Captura la orden de verificación de PayPal y guarda la cuenta del usuario.
|
Captura la orden de verificación de PayPal y guarda la cuenta del usuario.
|
||||||
|
|||||||
Reference in New Issue
Block a user