¿Por qué la seguridad del software es una habilidad que todos los programadores deberían tener?

Como programador o desarrollador, no se puede pasar por alto la importancia de crear aplicaciones seguras.

La seguridad del software aborda la gestión de ataques maliciosos identificando vulnerabilidades potenciales en el software y tomando las precauciones necesarias para protegerlas.

El software nunca puede ser 100% seguro porque los desarrolladores pueden ignorar un error, introducir nuevos errores mientras corrigen los existentes o introducir nuevas vulnerabilidades mediante actualizaciones.

Sin embargo, existen dos métodos principales que todos los desarrolladores de software pueden utilizar para asegurarse de crear software seguro. Se trata de escribir código seguro desde el principio y probarlo de forma eficaz.

¿Por qué la seguridad del software es una habilidad que todos los programadores deberían tener?

La seguridad del software juega un papel extremadamente importante

Cómo escribir código seguro

Escribir código seguro sólo tiene una cosa que hacer: manejo de errores. Si puede anticipar cada valor potencial que el usuario puede proporcionar a la aplicación y generar una respuesta en el programa para ese valor, entonces está escribiendo código seguro.

Esto es mucho más sencillo de lo que piensas, ya que todos los buenos desarrolladores saben casi todo sobre las aplicaciones que desarrollan. Por lo tanto, debes conocer cada valor que tu aplicación requiere para realizar una tarea (valores aprobados) y entender que cualquier otro valor que pueda existir son valores no aprobados.

Escribir código seguro

Suponga que desea crear un programa que acepte solo dos valores enteros del usuario y realice una operación de suma sobre ellos. Como buen desarrollador, ahora sabes todo sobre tu aplicación. Conoce todos los valores que aceptará este programa (valores enteros) y conoce la tarea que realizará este programa (una operación de suma).

Ejemplo de creación de un programa en Java

import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
addition(value1, value2);
input.close();
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

El código anterior crea una aplicación que coincide exactamente con los requisitos. Cuando se ejecute, producirá la siguiente línea en la consola:

Please enter your two integer values:

Luego, la aplicación permanecerá en pausa hasta que el usuario ingrese dos valores enteros en la consola (es decir, ingrese el primer valor, presione la tecla Enter y repita).

Si el usuario ingresa los valores 5 y 4 en la consola, el programa produce el siguiente resultado:

The sum of the two integer values you entered: 9

Genial. El programa hace exactamente lo que se supone que debe hacer. Sin embargo, si un usuario maligno entra e ingresa un valor no entero, como "g", en su aplicación, habrá un problema. Esto se debe a que no hay ningún código en la aplicación que proteja contra valores no aprobados.

En este punto, su aplicación fallará, creando una puerta de entrada potencial a su aplicación para que los piratas informáticos sepan exactamente qué hacer a continuación.

Ejemplo de seguridad del programa

import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
try {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
//using the scanner class to read each input from the user,
//and assign it to is respective variable (throws an exception if the values are not integers)
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
//calls the addition function and passes the two values to it
addition(value1, value2);
//closes the input stream after it has come to the end of its use
input.close();
//handle all the errors thrown in the try block
}catch(InputMismatchException e){
System.out.println("Please enter a valid integer value.");
}catch(Exception e) {
System.out.println(e.getMessage());
}
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

El código anterior es seguro porque realiza un manejo de excepciones. Por lo tanto, si ingresa un valor no entero, el programa generará la siguiente línea de código:

Please enter a valid integer value.

¿Qué es el manejo de excepciones?

¿Por qué la seguridad del software es una habilidad que todos los programadores deberían tener?

Manejo de excepciones

Básicamente, el manejo de excepciones es la versión moderna del manejo de errores, donde se separa el código de manejo de errores del código de manejo normal. En el ejemplo anterior, todo el código de manejo normal (o código potencialmente causante de excepciones) está en el bloque try y todo el código de manejo de errores está en el bloque catch.

Si observa más de cerca el ejemplo anterior, verá que hay dos bloques de captura. El primero toma un argumento InputMismatchException : este es el nombre de la excepción que se genera si se ingresa un valor no entero. El segundo toma el argumento Exception , y esto es importante porque su propósito es encontrar excepciones en el código que el desarrollador no encontró durante las pruebas.

Comprueba el código

Nunca debes subestimar el poder de probar y volver a probar el código. Muchos desarrolladores (y usuarios de aplicaciones) encuentran nuevos errores después de que el software se pone a disposición del público.

Las pruebas exhaustivas de su código garantizan que sepa qué hará su aplicación en cada situación imaginable y eso le permitirá protegerla contra violaciones de datos.

Considere el ejemplo anterior. ¿Qué pasa si, una vez completado, solo pruebas la aplicación con valores enteros? Puede abandonar la aplicación pensando que ha identificado con éxito todos los errores potenciales cuando en realidad no es así.

La realidad es que es posible que no pueda identificar todos los errores potenciales. Es por eso que el manejo de errores funciona en conjunto con la prueba de su código. Probar el programa anterior revela un error potencial que ocurrirá en una situación particular.

Sin embargo, si existe algún otro error que no apareció durante la prueba, entonces el segundo bloque catch en el código anterior lo manejará.

Seguridad de la base de datos

Si su aplicación se conecta a una base de datos, la mejor manera de evitar el acceso a esa base de datos es asegurarse de que todos los aspectos de la aplicación sean seguros. Sin embargo, ¿qué pasa si su aplicación está diseñada con el único propósito de proporcionar una interfaz a dicha base de datos?

Aquí es donde las cosas se ponen un poco más interesantes. En su forma más básica, las bases de datos permiten a los usuarios agregar, recuperar, actualizar y eliminar datos. Un sistema de gestión de bases de datos es una aplicación que permite a los usuarios interactuar directamente con una base de datos.

La mayoría de las bases de datos contienen datos confidenciales, por lo tanto, para mantener la integridad y limitar el acceso a estos datos, existe un requisito: el control de acceso.

Control de acceso

El control de acceso busca mantener la integridad de la base de datos determinando los tipos de personas que pueden acceder a la base de datos y restringiendo el tipo de acceso que tienen. Por lo tanto, un buen sistema de gestión de bases de datos debe poder registrar quién accedió a la base de datos, cuándo y qué hizo.

También puede impedir que los usuarios registrados accedan o editen datos con los que no están autorizados a interactuar.

Dejar un comentario

Cómo eliminar el aviso de solicitud de derechos de autor en la esquina derecha de la pantalla en Windows 10

Cómo eliminar el aviso de solicitud de derechos de autor en la esquina derecha de la pantalla en Windows 10

¿Ves una notificación de activación de Windows 10 en la esquina derecha de la pantalla? Este artículo le guiará sobre cómo eliminar el aviso de solicitud de derechos de autor en Windows 10.

Instrucciones de AZ sobre cómo instalar Windows 10 compilación 14393.222

Instrucciones de AZ sobre cómo instalar Windows 10 compilación 14393.222

Recientemente, Microsoft lanzó la última actualización acumulativa para usuarios de PC con Windows 10 llamada Build 14393.222. Esta actualización lanzada para Windows 10 corrige principalmente errores basados ​​en los comentarios de los usuarios y mejora la experiencia de rendimiento del sistema operativo.

Proteja su red informática con Bastion host en solo 3 pasos

Proteja su red informática con Bastion host en solo 3 pasos

¿Tiene computadoras en su red local que necesitan acceso externo? Usar un host bastión como guardián de su red puede ser una buena solución.

3 formas de borrar rápidamente todos los registros de eventos en Windows 10

3 formas de borrar rápidamente todos los registros de eventos en Windows 10

A veces es posible que necesites eliminar todos los registros de eventos antiguos a la vez. En esta guía, Quantrimang.com le mostrará 3 formas de eliminar rápidamente todos los registros de eventos en el Visor de eventos de Windows 10.

Cómo crear una tecla de Windows si tu teclado no está disponible

Cómo crear una tecla de Windows si tu teclado no está disponible

Si prefiere usar un teclado clásico antiguo, como el IBM Modelo M, que no incluye una tecla física de Windows, existe un método sencillo para agregar más, tomando prestada una tecla que no usa con frecuencia.

Cómo crear un modo de fondo transparente en Windows 10

Cómo crear un modo de fondo transparente en Windows 10

WindowTop es una herramienta que tiene la capacidad de atenuar todas las ventanas de aplicaciones y programas que se ejecutan en computadoras con Windows 10. O puede usar una interfaz de fondo oscuro en Windows.

Los métodos de IP falsos te ayudan a acceder de forma anónima

Los métodos de IP falsos te ayudan a acceder de forma anónima

En muchos artículos anteriores hemos mencionado que permanecer anónimo en línea es extremadamente importante. Cada año se filtra información privada, lo que hace que la seguridad en línea sea cada vez más necesaria. Esa es también la razón por la que deberíamos utilizar direcciones IP virtuales. ¡A continuación, aprenderemos sobre métodos para crear IP falsas!

Cómo desactivar la barra de idioma en la barra de tareas de Windows 8

Cómo desactivar la barra de idioma en la barra de tareas de Windows 8

La barra de idioma en Windows 8 es una barra de herramientas de idioma en miniatura diseñada para mostrarse automáticamente en la pantalla del escritorio. Sin embargo, mucha gente quiere ocultar esta barra de idioma en la barra de tareas.

Consejos para optimizar la velocidad de conexión a Internet de Linksys

Consejos para optimizar la velocidad de conexión a Internet de Linksys

Maximizar la velocidad de Internet es esencial para optimizar su conexión de red. Podrás tener una óptima experiencia de entretenimiento y trabajo utilizando computadoras, televisores con acceso a Internet, consolas de juegos, etc.

Cómo configurar WEP, WPA, WPA2 para el enrutador Linksys

Cómo configurar WEP, WPA, WPA2 para el enrutador Linksys

La conectividad inalámbrica es una necesidad hoy en día y, por eso, la seguridad inalámbrica es esencial para garantizar la seguridad en su red interna.