21 lines
		
	
	
		
			780 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			21 lines
		
	
	
		
			780 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: SQL Injection
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## SQL Injection
							 | 
						||
| 
								 | 
							
								SQL injection is a malicious technique that is meant to compromise or destroy databases. It is one of the most common web-hacking techniques.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SQL injection is performed by placing malicious code in SQL statements via an input. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The following example is a code snippet that will retrieve a user from a database based on an `AccountId`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								passedInAccountId = getRequestString("AccountId");
							 | 
						||
| 
								 | 
							
								sql = "select * from Accounts where AccountId = " + passedInAccountId;
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SQL injection can be used to compromise this code by injecting a `1=1;` statement for `AccountId`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`https://www.foo.com/get-user?AccountId="105 OR 1=1;"`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`1=1` will always evaluate to `TRUE`. This will cause the executed code to output all of the Accounts table.
							 |