Web Application Security: Common Threats and How to Prevent Them