Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo mejorar el nivel de seguridad del servidor?

¿Cómo mejorar el nivel de seguridad del servidor?

Para los programadores de desarrollo de programación, además de completar el trabajo de programación de software, también necesitan agregar algunas medidas básicas de seguridad de la información. Hoy veremos los tipos de medidas de seguridad que se pueden utilizar para mejorar el nivel de seguridad de los servidores.

Defensa en profundidad

El principio de Defensa en profundidad es un principio bien conocido entre los profesionales de la seguridad que ilustra el valor de las medidas de seguridad redundantes, que ha sido probado por la historia.

El principio de defensa en profundidad se puede extender a otros campos, no limitándose únicamente a la programación. Los paracaidistas que han utilizado paracaídas de respaldo pueden dar fe del valor de tener medidas de seguridad redundantes, aunque uno nunca quiere que falle el paracaídas principal. Una medida de seguridad redundante puede desempeñar un papel importante en el posible fallo de las medidas de seguridad primarias.

Volviendo al campo de la programación, adherirse al principio de defensa en profundidad requiere que siempre tengas un plan de respaldo. Si una medida de seguridad falla, otra debe brindar cierta protección. Por ejemplo, es una buena práctica volver a autenticar a los usuarios antes de realizar operaciones importantes, incluso si no se conocen fallas en la lógica de autenticación de usuarios. Si un usuario no autenticado pretende ser otro usuario mediante algún método, solicitar una contraseña puede impedir potencialmente que el usuario no autenticado (no verificado) realice algunas operaciones críticas.

Aunque la defensa en profundidad es un principio sólido, agregar excesivamente medidas de seguridad solo puede aumentar los costos y reducir el valor.

Permisos bajos

Solía ​​tener un auto que tenía una llave de servicio. Esta llave sólo se puede utilizar en el encendido, por lo que no puede abrir las puertas, la consola ni el maletero. Sólo se puede utilizar para arrancar el coche. Puedo entregársela al encargado del estacionamiento (o dejarla en el encendido) y confirmo que la llave no se puede usar para otros fines.

Tiene sentido darle al encargado del estacionamiento una llave que no abra la consola o el maletero; después de todo, es posible que desees guardar objetos de valor en esos lugares. Pero lo que no tiene sentido para mí es por qué no puede abrir la puerta. Por supuesto, esto se debe a que mi punto es sobre la revocación de autoridad. Me preguntaba por qué al encargado del estacionamiento le quitaron la autoridad para abrir la puerta. En programación, esta es una muy mala idea. En su lugar, debe considerar qué permisos son necesarios y otorgar a cada persona el menor permiso que necesite para realizar su trabajo.

Una de las razones por las que una llave de empleada no puede abrir la puerta de un automóvil es que la llave se puede copiar y la llave copiada puede usarse para robar un automóvil en el futuro. Este escenario puede parecer improbable, pero es un ejemplo de cómo la autorización innecesaria puede aumentar el riesgo, incluso para un pequeño aumento de los permisos. La minimización de riesgos es un componente importante del desarrollo de programas de seguridad.

No es necesario pensar en todas las formas en que se puede abusar de un permiso. De hecho, es casi imposible predecir las acciones de cada atacante potencial.

La simplicidad es hermosa

La complejidad genera errores, y los errores pueden generar vulnerabilidades de seguridad. Este simple hecho ilustra por qué la simplicidad es tan importante para una aplicación segura. La complejidad innecesaria es tan mala como el riesgo innecesario.

Exposición minimizada

Las aplicaciones PHP requieren comunicación frecuente entre PHP y fuentes de datos externas. Las principales fuentes de datos externas son los navegadores y las bases de datos de los clientes. Si realiza un seguimiento de los datos correctamente, podrá determinar qué datos estuvieron expuestos. Internet es una fuente importante de exposición porque es una red muy pública y siempre hay que tener cuidado para evitar que los datos queden expuestos en Internet.

La exposición de datos no significa necesariamente un riesgo de seguridad. Sin embargo, se debe minimizar la exposición de los datos. Por ejemplo, cuando un usuario ingresa a un sistema de pago y transmite los datos de su tarjeta de crédito a su servidor, debe usar SSL para protegerlo. Si desea mostrar su número de tarjeta de crédito en una página de confirmación, dado que la información del número de tarjeta se envía desde el servidor a su cliente, también necesita usar SSL para protegerlo.

Por ejemplo, en el ejemplo anterior, mostrar un número de tarjeta de crédito obviamente aumenta las posibilidades de exposición. De hecho, SSL puede reducir el riesgo, pero la mejor solución es eliminarlo por completo mostrando solo los últimos cuatro dígitos.

Para reducir la tasa de exposición a datos confidenciales, Tiantongyuan Computer Training cree que debe confirmar qué datos son confidenciales, rastrearlos al mismo tiempo y eliminar toda exposición innecesaria de datos. En este libro, le mostraré algunas técnicas que le ayudarán a proteger muchos tipos comunes de datos confidenciales.