Understanding SQL Injection: Vulnerabilities And Countermeasures