Se encuentra en:
Métodos de control de seguridad privados o finales
RECU-0612 (Recurso Ejemplo)
- Área: Codificación y Validación de entrada/salida
- Carácter del recurso: Obligatorio
- Tecnologías: Java
Descripción
Las clases no finales que contienen los métodos que llevan a cabo controles de seguridad pueden verse comprometidas si una subclase maliciosa reemplaza los métodos y omite las comprobaciones.
Ejemplos
Un ejemplo de código vulnerable seria el siguiente:
public void readSensitiveFile() {
try {
SecurityManager sm = System.getSecurityManager();
if(sm != null) { // Check if file can be read
sm.checkRead("/temp/tempFile");
}
// Access the file
} catch (SecurityException se) {
// Log exception
}
}
El siguiente código prohíbe la herencia del método readSensitiveFile () por el que se declara como final
public final void readSensitiveFile() {
try {
SecurityManager sm = System.getSecurityManager();
if(sm != null) { // check if file can be read
sm.checkRead("/temp/tempFile");
}
// Access the file
} catch (SecurityException se) {
// Log exception
}
}
Contenidos relacionados
Pautas
Código | Título | Tipo | Carácter | |
---|---|---|---|---|
PAUT-0249 | Métodos de control de seguridad privados o finales | Pauta | Directriz | Obligatoria |