21 lines
878 B
Markdown
21 lines
878 B
Markdown
|
---
|
||
|
title: SQL Injection
|
||
|
localeTitle: Injeção SQL
|
||
|
---
|
||
|
## Injeção SQL
|
||
|
|
||
|
A injeção de SQL é uma técnica mal-intencionada destinada a comprometer ou destruir bancos de dados. É uma das técnicas mais comuns de web-hacking.
|
||
|
|
||
|
A injeção de SQL é executada colocando códigos maliciosos nas instruções SQL por meio de uma entrada.
|
||
|
|
||
|
O exemplo a seguir é um snippet de código que recuperará um usuário de um banco de dados com base em um `AccountId` .
|
||
|
```
|
||
|
passedInAccountId = getRequestString("AccountId");
|
||
|
sql = "select * from Accounts where AccountId = " + passedInAccountId;
|
||
|
```
|
||
|
|
||
|
A injeção de SQL pode ser usada para comprometer esse código, injetando um `1=1;` declaração para `AccountId` .
|
||
|
|
||
|
`https://www.foo.com/get-user?AccountId="105 OR 1=1;"`
|
||
|
|
||
|
`1=1` será sempre avaliado como `TRUE` . Isso fará com que o código executado produza toda a tabela Contas.
|