PHP Conference Ehime 2026

Dónde emite advertencias taint

Cuando un string corrompido alcanza uno de los puntos indicados a continuación, taint emite una advertencia (por defecto un E_USER_WARNING; el nivel es configurable mediante taint.error_level). Solo se inspeccionan los argumentos de tipo string de primer nivel; volcar un array que simplemente contiene valores corrompidos no genera ninguna advertencia.

Puntos de salida
PuntoComprobado
echo, print la expresión mostrada o impresa
printf(), vprintf() el string de formato y los valores sustituidos
print_r(), var_dump(), var_export() el valor volcado, cuando es un string
exit/die con un mensaje el mensaje
file_put_contents(), fwrite(), fputs() hacia php://output los datos escritos

Puntos del sistema de ficheros
PuntoComprobado
fopen(), opendir(), unlink() la ruta
file(), readfile(), file_get_contents(), highlight_file()/show_source() la ruta
copy(), rename(), move_uploaded_file() tanto la ruta de origen como la de destino
mkdir(), rmdir(), touch() la ruta
include, include_once, require, require_once la ruta del fichero

Puntos SQL
PuntoComprobado
mysqli_query(), mysqli_prepare(), mysqli_real_query(), mysqli_multi_query() el string de la consulta
mysql_query(), sqlite_query(), sqlite_single_query(), oci_parse(), pg_query(), pg_send_query() el string de la consulta
mysqli::query(), mysqli::prepare(), mysqli::real_query(), mysqli::multi_query() el string de la consulta
PDO::query(), PDO::prepare(), PDO::exec() el string de la consulta
SQLite3::query(), SQLite3::prepare(), SQLite3::exec(), SQLiteDatabase::query(), SQLiteDatabase::singleQuery() el string de la consulta

Puntos de ejecución de comandos
PuntoComprobado
exec(), system(), passthru(), shell_exec() (incluyendo el operador de comillas invertidas) el string del comando
proc_open(), popen() el string del comando
eval el código evaluado
las llamadas dinámicas como $func(), $obj->$method(), call_user_func() o los callables en forma de array el nombre de la función, del método o de la clase que se resuelve
preg_match(), preg_match_all(), preg_replace(), preg_split(), preg_grep(), preg_replace_callback() el patrón (y el nombre de la retrollamada en el caso de preg_replace_callback())

Puntos de cabeceras y cookies
PuntoComprobado
header() el string de la cabecera
setcookie(), setrawcookie() el nombre y el valor de la cookie

Otros puntos
PuntoComprobado
unserialize() el string serializado
mail() el destinatario, el asunto, los parámetros adicionales y las cabeceras adicionales (el cuerpo del mensaje es contenido y no se comprueba)

Las advertencias siguen el formato nombre_de_funcion() [punto]: mensaje, donde punto identifica la operación comprobada (por ejemplo echo, include o el nombre de la función) y el mensaje describe lo que se ha encontrado como posiblemente corrompido.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top