Taint es una extensión que sirve para detectar código XSS (cadenas de caracteres corrompidas, «tainted»). También se puede utilizar para localizar vulnerabilidades a inyecciones SQL, inyecciones «shell», etc.
Si taint está habilitada, advertirá de si se ha proporcionado una cadena corrompida (que venga de $_GET, $_POST o $_COOKIE) a alguna función.
Ejemplo #1 Ejemplo de taint()
<?php
$a = trim($_GET['a']);
$nombre_fichero = '/tmp' . $a;
$salida = "¡¡¡Bienvenido, {$a} !!!";
$var = "salida";
$sql = "Select * from " . $a;
$sql .= "ooxx";
echo $salida;
print $$var;
include($nombre_fichero);
mysql_query($sql);
?>
El resultado del ejemplo sería algo similar a:
Warning: main() [function.echo]: Attempt to echo a string that might be tainted Warning: main() [function.echo]: Attempt to print a string that might be tainted Warning: include() [function.include]: File path contains data that might be tainted Warning: mysql_query() [function.mysql-query]: SQL statement contains data that might be tainted