SQL Injection (SQLi) vulnerability is one of the most frequent and harmful threats in web applications. SQL Injection occurs when the structure of issued SQL query is modified by crafted inputs entered by a malicious user. SQL Injection may result in information disclosure, data manipulation and denial of service. This vulnerability has stayed between top three web vulnerabilities in recent years. Although new methods were introduced to discover, detect or prevent it in recent years, these approaches had several drawbacks. Some approaches do not have accurate results and usually engage with false positives (or negatives) or do not cover all categories of SQLi. Some others should pass training period. A large group of them needs to parse or modify source code and the other ones are not capable with dynamic generated queries. This thesis begins with a comprehensive categorized introduction to SQLi attack methods. These categories include "authentication bypass", "error based information disclosure", "union based data projection" and "blind SQL injection". Then we express major prevention approaches in three general left; MARGIN: 0in 0in 0pt; unicode-bidi: embed; DIRECTION: ltr" align=left Keywords: SQL Injection, Vulnerability Assessment, Web Security, Command Injection.