<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.basic.other.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'book.taint.php',
    1 => 'Taint',
    2 => 'Taint',
  ),
  'up' => 
  array (
    0 => 'refs.basic.other.php',
    1 => 'Otras extensiones b&aacute;sicas',
  ),
  'prev' => 
  array (
    0 => 'yaconf.has.php',
    1 => 'Yaconf::has',
  ),
  'next' => 
  array (
    0 => 'taint.setup.php',
    1 => 'Instalaci&oacute;n/Configuraci&oacute;n',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/taint/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.taint.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.taint" class="book">
 
 <h1 class="title">Taint</h1>
 

 <div id="intro.taint" class="preface">
  <h1 class="title">Introducción</h1>
  <p class="simpara">
   Taint es una extensión para detectar código XSS (strings corrompidos,
   «tainted»). También puede utilizarse para localizar inyecciones SQL,
   inyecciones de comandos, inyecciones de rutas de ficheros y
   vulnerabilidades similares.
  </p>
  <p class="simpara">
   Cuando taint está habilitada, los strings recibidos de la entrada del
   usuario — <var class="varname"><a href="reserved.variables.get.php" class="classname">$_GET</a></var>, <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST</a></var> y
   <var class="varname"><a href="reserved.variables.cookies.php" class="classname">$_COOKIE</a></var> — se marcan como corrompidos al inicio de la
   petición, y la marca se propaga a través de las operaciones con strings.
   Cuando un string corrompido alcanza un punto peligroso (salida, consulta
   SQL, comando del sistema, ruta de fichero, ...), taint emite una
   advertencia que señala ese punto. Consulte
   <a href="taint.detail.php" class="link">Propagación y puntos comprobados</a> para
   ver las listas completas.
  </p>
  <p class="simpara">
   Taint es una herramienta de desarrollo y auditoría, no una defensa en
   tiempo de ejecución: solo informa de posibles problemas, y nunca bloquea
   ni altera los datos. Es deliberadamente conservadora y puede informar de
   más de la cuenta, de modo que una ejecución limpia solo significa «nada
   que taint pudiera ver», nunca «demostrablemente seguro». No la habilite
   en entornos de producción.
  </p>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Ejemplo de taint</strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$a </span><span style="color: #007700">= </span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">$_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'a'</span><span style="color: #007700">]);

</span><span style="color: #0000BB">$file_name </span><span style="color: #007700">= </span><span style="color: #DD0000">'/tmp/' </span><span style="color: #007700">. </span><span style="color: #0000BB">$a</span><span style="color: #007700">;
</span><span style="color: #0000BB">$output    </span><span style="color: #007700">= </span><span style="color: #DD0000">"Welcome, </span><span style="color: #007700">{</span><span style="color: #0000BB">$a</span><span style="color: #007700">}</span><span style="color: #DD0000"> !!!"</span><span style="color: #007700">;
</span><span style="color: #0000BB">$sql       </span><span style="color: #007700">= </span><span style="color: #DD0000">"SELECT * FROM users WHERE name = " </span><span style="color: #007700">. </span><span style="color: #0000BB">$a</span><span style="color: #007700">;

echo </span><span style="color: #0000BB">$output</span><span style="color: #007700">;
print </span><span style="color: #0000BB">$output</span><span style="color: #007700">;
include </span><span style="color: #0000BB">$file_name</span><span style="color: #007700">;
</span><span style="color: #0000BB">mysqli_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">);
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

   <div class="example-contents"><p>Resultado del ejemplo anterior
es similar a:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
Warning: main() [echo]: Attempt to echo a string that might be tainted in /path/to/script.php on line 9

Warning: main() [print]: Attempt to print a string that might be tainted in /path/to/script.php on line 10

Warning: main() [include]: File path contains data that might be tainted in /path/to/script.php on line 11

Warning: main() [mysqli_query]: SQL statement contains data that might be tainted in /path/to/script.php on line 12
</pre></div>
   </div>
  </div>
 </div>

 






 






 







<ul class="chunklist chunklist_book"><li><a href="taint.setup.php">Instalaci&oacute;n/Configuraci&oacute;n</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="taint.requirements.php">Requisitos</a></li><li><a href="taint.installation.php">Instalaci&oacute;n</a></li><li><a href="taint.configuration.php">Configuraci&oacute;n en tiempo de ejecuci&oacute;n</a></li><li><a href="taint.resources.php">Tipos de recursos</a></li></ul></li><li><a href="taint.detail.php">Propagaci&oacute;n y puntos comprobados</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="taint.detail.basic.php">C&oacute;mo se propaga la marca de corrupci&oacute;n</a></li><li><a href="taint.detail.sinks.php">D&oacute;nde emite advertencias taint</a></li></ul></li><li><a href="ref.taint.php">Funciones de taint</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.is-tainted.php">is_tainted</a> — Comprueba si un string est&aacute; corrompido</li><li><a href="function.taint.php">taint</a> — Marca strings como corrompidos</li><li><a href="function.untaint.php">untaint</a> — Elimina la marca de corrupci&oacute;n de los strings</li></ul></li></ul></div><?php manual_footer($setup); ?>