Necesitas más que simples if para tener resultados
Existen múltiples métodos de hacking.. XSS, XSRF, DDoS, SQLi...
Por ejemplo el XSS es un tipo de inyección HTML. Digamos que por ejemplo tengo un foro y voy a poner un post donde el campo es vulnerable. Si pongo:
<script>alert();</script> y le doy en preview, me saldrá un alert. Ésto quiere decir que el formulario es vulnerable y aceptará cualquier HTML. Ahora, puedo poner algo así:
Código HTML:
Ver original<div style="position:fixed; width:100%; height:100%; background-color:#000; color:#FFF;">Mi texto
</div>
Si sabes algo de HTML, te darás cuenta que eso es para que el div se superponga en toda la página y tenga el tamaño de la ventana. Como el formulario es vulnerable, cuando quieras ver el post, verás el div superponíendose. Ésto se previene convirtiendo < y > a sus respectivas entidades HTML para que el navegador no lo interprete como tal, de ésta manera aparecerá <b>hola</b> (por ejemplo) y no hola en negritas.
La SQLi es más avanzada. Consiste en modificar Query's SQL a manera de que nos dé mas información de la común... Por ejemplo, supongamos que tengo una tabla con tres campos (id, usuario, password). Tengo un script que por medio del usuario, me trae su contraseña, obviamente tienes que saber el usuario. Supongamos que el script se usa como index.php?usuario=usuarioejemplo Y el código es:
Código PHP:
Ver original$user = $_GET['usuario'];
$query = mysql_query("SELECT * FROM tabla WHERE usuario = '$user'"); echo $res['password'].'<br />';
}
Como verás, lo que le pase por
index.php?usuario= será reemplazado por $user. Entonces, si hago algo así:
index.php?usuario=' or '1'='1
La query quedará como:
Esto se traduce como: Selecciona todo de tabla donde el usuario sea un campo vacío Ó donde 1 sea igual a 1.
Obviamente siempre 1 es igual a 1, entonces traerá todos los password. Ésto se soluciona escapando las comas (\') Pero
no sólo así, existe tambien INNER JOIN.
En fin, necesitas leer un poco para entender, es un tema algo extenso
Saludos!