...
The compliant solution also uses the File.getCanonicalFile()
method to canonicalize the file to simplify subsequent path name comparisons (see rule IDS02 FIO16-J. Canonicalize path names before validating them for more information).
Code Block | ||
---|---|---|
| ||
class ExceptionExample { public static void main(String[] args) { File file = null; try { file = new File(System.getenv("APPDATA") + args[0]).getCanonicalFile(); if (!file.getPath().startsWith("c:\\homepath")) { System.out.println("Invalid file"); return; } } catch (IOException x) { System.out.println("Invalid file"); return; } try { FileInputStream fis = new FileInputStream(file); } catch (FileNotFoundException x) { System.out.println("Invalid file"); return; } } } |
...
9.1, Security Exceptions |
...