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` . Это приведет к тому, что исполняемый код выведет всю таблицу учетных записей.
|