php - bearer - jquery ajax headers
Solo acepta ciertas solicitudes ajax de usuarios autenticados (2)
¿Cuál es la mejor práctica para asegurarse de que ciertas llamadas ajax a ciertas páginas solo sean aceptadas por usuarios autenticados?
Por ejemplo:
Digamos que tengo una página principal llamada blog.php (lo sé, abunda la creatividad). Digamos también que hay una página llamada delete.php que busca el parámetro post_id y luego borra alguna entrada de una base de datos.
En este ejemplo muy artificial, hay un mecanismo en blog.php que envía una solicitud a ajax a delete.php para eliminar una entrada.
Ahora este mecanismo solo estará disponible para usuarios autenticados en blog.php. Pero, ¿qué impide que alguien simplemente llame a delete.php con un montón de números aleatorios y elimine todo en el sitio?
Hice una prueba rápida donde establecí una variable de sesión en blog.php y luego hice una llamada ajax a delete.php para devolver si la variable de sesión estaba configurada o no ( no lo era) .
¿Cuál es la forma aceptada de manejar este tipo de cosas?
DE ACUERDO. Debo haber estado loco la primera vez que probé esto.
Acabo de hacer otra prueba como la que describí anteriormente y funcionó perfectamente.
Tuviste razón al tratar de usar las variables de sesión. Una vez que el usuario se autentica, debe almacenar esa información en su sesión para que cada vista posterior de la página lo vea. Asegúrese de llamar a session_start()
en ambas páginas (blog.php y delete.php) antes de acceder a $ _SESSION. También asegúrese de tener las cookies habilitadas, y si no, debe pasar un parámetro adicional en la cadena de consulta, generalmente PHPSESSID = < session_id()
>.
No se recomienda que dependa de sesiones para autenticación sin tomar acciones adicionales. Lea más en .