Recommendations

Use file handles where possible

Rules

Check file access rights

Detect and handle file operation errors

Create temporary files in private directories

Open files with as few privileges as necessary

Validate path and filename parameters supplied to file functions

Ensure that files are really files (not symlinks)