Ver Mensaje Individual
  #18 (permalink)  
Antiguo 16/01/2018, 17:27
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: evitar hackeo por envio de variables ($_post)

Cita:
Iniciado por jiten
la validación de campos filtra viendo tipo de info que es pasada, pero eso no sirve de mucho puesto que igual el precio fue cambiado por otro valor del mismo tipo (float, por ejemplo) ... pero no hay forma de verificar si esun cambio genuino que desea hacer el cliente o si está intentando hackear poniendo un valor bajo
Por supuesto que hay forma, el proceso sería más o menos así:

1. Validar sesión: Debes obtener y guardar en sesión información del usuario y su ID.

2. Validar datos ingresados: PHP recibe como cadena todo lo proveniente de GET, POST, etc., por lo que deberás convertirlos al tipo de dato deseado. Además, también debes eliminar la posibilidad de ataques XSS (Cross Site Scripting), aunque la intención es atacar a los usuarios, no al sitio propiamente.

3. Preparar datos antes de incluirlos en una consulta SQL: Si no trabajas con consultas preparadas, entonces debes escapar los datos, por ejemplo, con las librerías mysql y mysqli debes usar la función *_real_escape_string().

4. Verifica que cada producto pertenece al usuario que inició sesión.

Lo del token y Access Control te ayudarán a prevenir ataques de usuarios inexpertos, pero, a menos que el acceso sea HTTPS, no de quienes tengan un poco de conocimientos de HTML + Javascript + Herramientas de navegador. La parte más importante de seguridad debe ser manejada del lado del servidor.

Edito para agregar:

Se me olvidaba, también puedes hacer una "doble autentificación", lógicamente, la primera es la que usas siempre para iniciar/verificar sesión:

1. Crea una variable de sesión donde guardes fecha y hora del último formulario procesado, inicializándola en cero.
2. Establece el máximo de minutos para evitar pedir contraseña, digamos 15.
3. Al procesar el formulario, si pasaron más de 15 minutos desde la última vez que pediste contraseña, entonces guardas todos los datos del formulario en una variable de sesión, pides al usuario que ingrese su contraseña, actualizas la variable de tiempo y después recuperas los datos que guardaste en sesión y procesas el formulario.
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 16/01/2018 a las 17:37