amanitacreaciones
Hola, y mira lo que preguntas, es muy dificil de contestar.
Uno como programador sabe donde esta la falla y nunca se cierra, por naturaleza dejamos la puerta de emergencia abierta.
MD5 es historia, hay paginas que te decodifican
ejemplo por lo tanto ya ni para los bots es un impedimento...
Lo mejor que podes hacer es trabajar sin cookies, sin autocomplete en los forms y sobre todo en HTTPS que es un protocolo que encripta mientras trabaja(corrijan si me equivoco).
Captcha tambien es matematica basica para los bots.
te recomiendo que los nombres de los input del form no tengan relacion alguna con su contenido ejemplo:
<input type="text" name="af124q" > y su contenido tiene que ser su APELLIDO.
Tambien si pedis codigo postal, utilices javascript para que en el input no puedas escribir simbolos (ojo si letras), y en la verificacion el contenido de ese campo no tenga letras.
Pidas una pregunta secreta donde el principio inicie con ¿ y temine con ?....
Utilizes la menor cantidad de textos posibles en especial en el form, utiliza imagenes en el cual su imagen no tenga relacion con su texto impreso en el (espero que entiendas).
Usa creatividad y cerra la puerta de emergencia.
con respecto al metodo GET que lei, si utilizas GET siempre pida confirmacion a la accion si este sita una accion y si lo podes evitar mejor ya que este queda en el historial de navegacion.
a un usuario designale:
ID USER CORREO PASS
CODIGO
donde
CODIGO sea un numero seteado en SESSION y en ves de utilizar el ID uses este. Despues todos los dias
CODIGO por un script cambie, y no se repita. para que las URL por metodo GET caduquen
Espero que esto te sirva un poco.
yo utilizo MD5
no utilizo HTTPS por que me molesta el alerta de Certificado
El registro es re facil, y como la pagina nadie la ve no entran bots
y tengo a falta de una 4 salidas de emergencia... xD