PHP Velho Oeste 2024

Introducción

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
add a note add a note

User Contributed Notes 1 note

up
0
wolfen at gmail dot com
9 years ago
I'm wondering about the quality of this PHP extension, specifically:

1. Are there any known bugs or limitations?
2. How does enabling it affect the performance of a typical system?
3. Would I be foolish to use it in PROD? Yes, yes, I know *not* using Taint in PROD is risky, that is why I want to use it! But I need to know the risks associated with using it in order to be able to make a rational decision.

Also, is this the same as the PECL package developed by Weitse Venema following PHP RFC for Taint (https://wiki.php.net/rfc/taint) or does it differ significantly in any way?
To Top