Cloud Application Security: Best Practices and Vulnerabilities