La forma mas segura seria:
- Enviar por POST para CREATE / DELETE / UPDATE / SELECT
ó
- Enviar por POST para CREATE / DELETE / UPDATE y por GET para SELECT
Adicional.... podrias usar usar "
urls amigables" para evitar enviar algun ID al hacer las peticiones (POST / GET) ..
En caso que pases variables por GET (?variable=valor&...) podrias no usar los nombres de los campos en las variables y ofuscar los IDs pero solo para las peticiones GET asi lograras que si logran "emular" una peticion POST no puedan hacete daño (ya no sabrian cuales son los IDs)
Te paso un ofuscador simple de IDs para que uses en tus gets que he hecho:
Código HTML:
Ver original<?php
/*
@author: Pablo Bozzolo
*/
# auxiliar
function swapstr($s){
$endpos = strlen($s)-1;
$last = $s[$endpos];
$first = $s[0];
$s = substr_replace ($s , $last ,0, 1);
$s = substr_replace ($s , $first ,$endpos, 1);
return $s;
}
# coding
function ofusca_key($n){
return swapstr(strval(dechex(1000 + $n*$n)));
}
#decoding
function desofusca_key($s){
return sqrt(hexdec(swapstr($s)) -1000);
}
// Ejemplo
/*
$n = 3500;
echo ofusca_key($n)."\n";
echo desofusca_key(ofusca_key($n));
*/
@pateketrueke: pues yo si creo las cosas se pueden complicar un poco...... (leer comentario final)
Cita:
Iniciado por pateketrueke
Ya sea que pases el ID por URL o con un campo hidden siempre será visible si inspeccionas el código HTML generado en el navegador, eso cualquiera lo sabe.
Al fin y al cabo es tu programación la responsable de la seguridad, ¿un ID qué tiene que ver?
Que sea visible o no el ID no hace "inseguro" tu sistema por ninguna razón.
Obviamente la solucion que propongo solo requiere abrir la consola dell navegador e inspeccionar las peticiones HTTP, eso cualquiera lo sabe.