Check file access rights before opening

Detect and handle file operation errors

Do not create temporary files in insecure directories

Open files with as few privileges as necessary

Validate path and filename parameters supplied to file functions

use file handles as much as possible

Ensure that files are really files (not symlinks)