Smartphone App Security: Vulnerabilities and Implementations