21 lines
894 B
Markdown
21 lines
894 B
Markdown
|
---
|
||
|
title: SQL Injection
|
||
|
localeTitle: Inyección SQL
|
||
|
---
|
||
|
## Inyección SQL
|
||
|
|
||
|
La inyección SQL es una técnica maliciosa que está destinada a comprometer o destruir bases de datos. Es una de las técnicas de hacking web más comunes.
|
||
|
|
||
|
La inyección de SQL se realiza colocando código malicioso en las sentencias de SQL a través de una entrada.
|
||
|
|
||
|
El siguiente ejemplo es un fragmento de código que recuperará un usuario de una base de datos basada en un `AccountId` .
|
||
|
```
|
||
|
passedInAccountId = getRequestString("AccountId");
|
||
|
sql = "select * from Accounts where AccountId = " + passedInAccountId;
|
||
|
```
|
||
|
|
||
|
La inyección SQL se puede usar para comprometer este código inyectando un `1=1;` Estado de `AccountId` para `AccountId` .
|
||
|
|
||
|
`https://www.foo.com/get-user?AccountId="105 OR 1=1;"`
|
||
|
|
||
|
`1=1` siempre se evaluará como `TRUE` . Esto hará que el código ejecutado genere toda la tabla de Cuentas.
|