Técnicas de programación segura

Uso de técnicas de programación segura (excepciones, validación de entradas y registro) y políticas de seguridad

Técnicas de programación segura

Manejo de excepciones

Ejemplo: Escribir números

Validación de entradas:

Ejemplos de Expresiones Regulares en Java

Regular Expressions Cheat Sheet

Java Regular Expression Tester

Ejemplo: Validar DNI

import java.io.*;
import java.util.regex.*;

class ValidacionDNI {

    public static void main( String[] arg ) {
        String dni_cliente = new String();
        Pattern pat = null;
        Matcher mat = null;

        // para leer del teclado
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        try{
            System.out.println("Introduce tu DNI (Formato 00000000A):");
            dni_cliente = reader.readLine();

            pat = Pattern.compile("[0-9]{8}[a-zA-Z]");
            mat = pat.matcher(dni_cliente);

            // Comprobar si el DNI es correcto o no
            if (mat.matches()){
                System.out.println("Correcto!!  " + dni_cliente);
            }else{
                System.out.println("El DNI está mal  " + dni_cliente);
            }

            System.out.println("Validación de letra válida:");
            String dniRegexp = "\\d{8}[A-HJ-NP-TV-Z]";
            System.out.println(Pattern.matches(dniRegexp, dni_cliente));

        } catch( Exception e ) {
            System.out.println( e.getMessage() );
        }
    }
}

Ejemplo: Validar email

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidacionEmail {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String email;
        System.out.print("Introduce email: ");
        email = sc.nextLine();

        System.out.println("Validación del email con [^@]+@[^@]+\\.[a-zA-Z]{2,}:");
        String emailRegexp = "[^@]+@[^@]+\\.[a-zA-Z]{2,}";
        System.out.println(Pattern.matches(emailRegexp, email));

        Pattern pat = Pattern.compile("^[\\w-]+(\\.[\\w-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
        Matcher mat = pat.matcher(email);

        System.out.println("Validación del email con ^[\\w-]+(\\.[\\w-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
        if (mat.find()){
            System.out.println("Correo Válido");
        } else {
            System.out.println("Correo No Válido");
        }
    }
}

 

Ficheros de registro:

Java Examples – Filehandler and Simpleformatter

Package java.util.logging

Ejemplo: Crear un fichero de registro

Políticas de seguridad:

Ejemplo: Obtener propiedades

PolicyGuide

Class PropertyPermission

Class SocketPermission

Class FilePermission

Ruta a policytool: /home/usuario/android-studio/jre/bin/policytool

Más información:

Guía para entender y usar expresiones regulares

Búsqueda de patrones – Expresiones regulares

Expresiones Regulares en Java

Package java.util.regex

JDK Tools and Utilities

Deja una respuesta