Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/05/2014, 17:29
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: seguridad al pasar un id

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
  1. <?php
  2. /*
  3.     @author: Pablo Bozzolo
  4. */
  5.  
  6. # auxiliar
  7. function swapstr($s){  
  8.     $endpos = strlen($s)-1;
  9.     $last   = $s[$endpos];
  10.     $first  = $s[0];
  11.     $s = substr_replace ($s , $last ,0, 1);
  12.     $s = substr_replace ($s , $first ,$endpos, 1);
  13.     return $s;
  14. }
  15.  
  16. # coding
  17. function ofusca_key($n){
  18.     return swapstr(strval(dechex(1000 + $n*$n)));
  19. }  
  20.    
  21. #decoding
  22. function desofusca_key($s){
  23.     return sqrt(hexdec(swapstr($s)) -1000);
  24. }  
  25.  
  26.  
  27. // Ejemplo
  28. /*
  29. $n = 3500;
  30.  
  31. echo ofusca_key($n)."\n";
  32. echo desofusca_key(ofusca_key($n));
  33. */

@pateketrueke: pues yo si creo las cosas se pueden complicar un poco...... (leer comentario final)

Cita:
Iniciado por pateketrueke Ver Mensaje
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.
__________________
Salu2!

Última edición por Italico76; 19/05/2014 a las 18:45