Pregunta

Voy a implementar un PHP/mySQL Configuración para almacenar información de tarjetas de crédito.

Parece que AES_ENCRYPT/AES_DECRYPT es el camino a seguir,

pero todavía estoy confundido en un punto:

¿Cómo mantengo segura la clave de cifrado?

Conectarlo a mis scripts PHP (que vivirán en el mismo servidor que la base de datos) parece un agujero de seguridad importante.

¿Cuál es la solución de "mejores prácticas" aquí?

¿Fue útil?

Solución

Deberías pensar detenidamente si REALMENTE necesitas conservar el número de CC.Si no tienes una buena razón, ¡NO LO HAGAS!Cada dos semanas se entera de que alguna empresa se ha visto comprometida y de que se han robado los números de CC.Todas estas empresas cometieron un error fatal: retuvieron demasiada información.Conserve el número de CC hasta que se borre la transacción.Después de eso, elimínelo.

En cuanto a proteger el servidor, el mejor curso de acción es proteger el hardware y utilizar el socket interno del sistema para MySQL, y asegurarse de bloquear cualquier acceso de red al servidor MySQL.Asegúrese de utilizar tanto los permisos del sistema como los permisos de MySQL para permitir el menor acceso necesario.Para algunas secuencias de comandos, podría considerar la autenticación de sólo escritura.Realmente no existe ningún método de cifrado que sea infalible (ya que siempre necesitarás descifrarlo y, por lo tanto, deberás almacenar la clave).Esto no quiere decir que no debería hacerlo: puede almacenar su clave en una ubicación y, si detecta que el sistema está comprometido, puede destruir el archivo e inutilizar los datos.

Otros consejos

MySQL, hay seis sencillos pasos que puedes seguir para proteger tus datos confidenciales.

Paso 1:Eliminar comodines en las tablas de concesiones

Paso 2:Requerir el uso de contraseñas seguras

Nota:Utilice la opción MySQL “--secure-auth” para evitar el uso de formatos de contraseña MySQL más antiguos y menos seguros.

Paso 3:Verifique los permisos de los archivos de configuración.

Etapa 4:Cifrar transmisiones cliente-servidor

Paso 5:Deshabilitar el acceso remoto

Paso 6:Supervise activamente el registro de acceso de MySQL

Herramientas de seguridad

Estoy de acuerdo, pero no envíes cc si no lo necesitas.Pero si realmente lo tiene, asegúrese de que no se pueda acceder al archivo que lo contiene en la web.Puede escribir un binario que devuelva la clave.De esta manera no se almacena en texto claro.Pero si su servidor está comprometido, aún es fácil conseguirlo.

La seguridad que necesita depende de su aplicación.por ejemplo, si la única vez que se utilizará el cc# es cuando el usuario inicia sesión (escenario de tipo tienda en línea delgada), entonces puede cifrar el cc# con un hash de la contraseña de texto sin formato del usuario, un sal de usuario y una sal cc# dedicada.no almacene este valor permanentemente.

Dado que no está almacenando este valor, el único momento en que puede obtenerlo es cuando el usuario ingresa su contraseña para iniciar sesión.solo asegúrese de tener buenas políticas de caducidad de sesiones y recolección de basura.

Si esta situación no se aplica a usted, describa su situación con más detalle para que podamos brindarle una respuesta más adecuada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top