21 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			21 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: SQL Injection | ||
|  | localeTitle: SQL-инъекция | ||
|  | --- | ||
|  | ## SQL-инъекция
 | ||
|  | 
 | ||
|  | SQL-инъекция - это вредоносная техника, предназначенная для компрометации или уничтожения баз данных. Это один из самых распространенных методов веб-взлома. | ||
|  | 
 | ||
|  | SQL-инъекция выполняется путем размещения вредоносного кода в операторах SQL через вход. | ||
|  | 
 | ||
|  | Следующий пример - фрагмент кода, который будет извлекать пользователя из базы данных на основе `AccountId` . | ||
|  | ``` | ||
|  | passedInAccountId = getRequestString("AccountId");  | ||
|  |  sql = "select * from Accounts where AccountId = " + passedInAccountId;  | ||
|  | ``` | ||
|  | 
 | ||
|  | SQL-инъекция может использоваться для компрометации этого кода путем ввода `1=1;` для `AccountId` . | ||
|  | 
 | ||
|  | `https://www.foo.com/get-user?AccountId="105 OR 1=1;"` | ||
|  | 
 | ||
|  | `1=1` всегда будет иметь значение `TRUE` . Это приведет к тому, что исполняемый код выведет всю таблицу учетных записей. |