Estoy construyendo una aplicación web donde la interfaz es un motor de búsqueda altamente especializado. La búsqueda se maneja en la URL principal, y el usuario pasa a un subdirectorio cuando hace clic en un resultado de búsqueda para obtener una visualización más detallada. Esta transferencia se realiza como una solicitud GET con la clave primaria que se pasa en la cadena de consulta. Parece que recuerdo haber leído en alguna parte que la exposición de claves primarias al usuario no era una buena idea, así que decidí implementar un cifrado reversible.¿Debería oscurecer los valores de las claves primarias?
Estoy empezando a preguntarme si solo estoy siendo paranoico. La encriptación reversible (base64) probablemente se rompa fácilmente por cualquiera que quiera probar, hace que las URL sean muy feas y también más largas de lo que serían. ¿Debo soltar el cifrado y enviar mis claves principales a la luz?
Gracias a todos por las excelentes respuestas. Para la posteridad, me gustaría hacer algunas observaciones finales. En mi situación particular, la base de datos no contiene secretos, por lo que cambiar la ID en la URL solo llevaría a otra entrada de la base de datos o a un error cuando haya un espacio en la autonumeración porque es posible que haya eliminado un registro. He puesto tanta desinfección en el cuadro de entrada de búsqueda como sé, así que creo que la base de datos es bastante segura. La información es histórica, por lo que cambiará rara vez o nunca, por lo que incluso si alguien lograra destruir la base de datos, podría recuperarla rápidamente sin pérdida. – Scott