¿Puede la encapsulación (OOP) hacer un software más seguro?

SÍ.

En mi opinión, la encapsulación ciertamente proporciona algún tipo de “práctica de codificación segura”.

Permítanme citar este ejemplo de John D. Cook. Aquí explica cómo funciona realmente la encapsulación. Sin encapsulación, estaríamos pasando nuestros datos (argumentos) a una función externa, como slice(bread).

Aquí, no sabríamos qué operación slice() realiza en el bread .

Pero con la encapsulación, tenemos un objeto de bread que tiene una función interna llamada slice() . Controlamos lo que hace slice() . Por lo tanto, los datos no se envían a ninguna entidad externa del software.

Así es como veo la seguridad establecida. Sin embargo, no me atrevería a decir que es lo único que debe hacer para mantener un código seguro.

Si me encuentro con algo más, actualizaré esta respuesta.

Happy Hacking! 🙂

OOP no es más que otra estructura de programación. Tiene sus ventajas y desventajas, al igual que cualquier otra estructura. La calidad y las capacidades de los programas creados con él están determinadas por las habilidades y capacidades de los programadores que lo usan, no por la estructura en sí. A pesar de todo el alboroto y la jerga que ha surgido a su alrededor (a menudo de académicos que tienen alguna necesidad de unir balbuceos a todo para que puedan ofuscar conceptos y hacerse sentir importantes), cuando llegas a eso, la POO no es más que un forma de obligar a los programadores a seguir una estructura que ha sido una “mejor práctica” desde el principio: diseñar programas que en realidad sean colecciones de rutinas pequeñas, relativamente simples, fáciles de empaquetar y reutilizables que tengan interfaces bien definidas y estándar, que puedan fácilmente ser extendido / modificado para resolver nuevos problemas.

Sí, existe una técnica llamada sandboxing que es una forma de encapsulación utilizada en sistemas seguros para proporcionar contención. Es particularmente importante en escenarios como el navegador donde es necesario ejecutar código remoto (no confiable) ( JavaScript en el caso del navegador). Este tipo de encapsulación se usa normalmente a mayor escala, que la encapsulación de grano fino de muchas OOPL.

Solo si logras hacer una pieza de software cuyo estado de ejecución sea algo comprensible para ti.

Lo cual, dado que la encapsulación en realidad se combina con otros principios de OOP y la mutabilidad enloquecida, es más fácil decirlo que hacerlo.

Las habitaciones cerradas por separado hacen que una casa sea más segura. La respuesta es sí.

Cada habitación encapsula algunas cosas y proporciona una única puerta para su acceso que se puede controlar. Además, para llegar a un tema en particular, deberá omitir múltiples controles y controles (bloqueos a nivel de la casa y de la habitación).

Si y no.

Sí, ya que probablemente tendrá más controles en su lugar.
No, no solo debe confiar en esto para tener un software seguro.
No, está agregando una capa de abstracción … esto es propenso a errores si hay demasiadas capas involucradas. Complejidad = errores = vulnerabilidades.

Hasta cierto punto puede, al hacer que algunas funciones internas accedan a privado, en lugar de público, mediante encapsulación.

More Interesting

Cómo descargar más de 1 archivo torrent usando idm gratis

¿Qué tan precisa es la aplicación Nike + iPhone en la medición de distancia?

Cuando inicio mi computadora, ¿por qué algunos programas se inician y otros no?

¿Qué tipo de programa de estudios, videos de conferencias, guías en línea, libros electrónicos, libros de algoritmos, etc. se recomienda para la programación de autoaprendizaje?

¿Cómo puede una persona mejorar su velocidad de escritura? ¿Qué buen software puede ayudar con este problema?

¿Cuál es la mejor aplicación para la navegación?

¿Por qué existe Foursquare? ¿Es solo que los usuarios pueden compartir en Facebook donde están?

¿Cuál es el mejor programa antivirus gratuito para Windows con una baja sobrecarga de recursos del sistema?

¿Cuáles son algunos ejemplos de software terrible que la gente usa hoy en día?

¿Con qué frecuencia su empresa realiza un inventario? ¿Cuánto tiempo se tarda? ¿Cómo se configura su almacén? ¿Qué causa que el inventario se desorganice?

¿Cuál es la mejor aplicación de seguridad del campus?

¿Qué es un software económico para calcular comisiones para representantes de ventas para una pequeña empresa (menos de 10 personas)?

¿Qué software recomendaría una startup B2C para el marketing por correo electrónico que también tenga cierta lógica de automatización?

Además de un planificador, ¿qué debería haber en la solicitud personal de un abogado?

¿Qué software usar para combinar fotos y audio?