<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/taint.detail.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'taint.detail.sinks.php',
    1 => 'O&ugrave; taint d&eacute;clenche des avertissements',
    2 => 'O&ugrave; taint d&eacute;clenche des avertissements',
  ),
  'up' => 
  array (
    0 => 'taint.detail.php',
    1 => 'Propagation et v&eacute;rifications',
  ),
  'prev' => 
  array (
    0 => 'taint.detail.basic.php',
    1 => 'Comment la marque de corruption se propage',
  ),
  'next' => 
  array (
    0 => 'ref.taint.php',
    1 => 'Fonctions Taint',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/taint/detail.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="taint.detail.sinks" class="section">
  <h2 class="title">Où taint déclenche des avertissements</h2>
  <p class="simpara">
   Lorsqu&#039;une chaîne corrompue atteint l&#039;un des points de sortie ci-dessous,
   taint émet un avertissement (par défaut un
   <strong><code><a href="errorfunc.constants.php#constant.e-user-warning">E_USER_WARNING</a></code></strong> ; le niveau est configurable via
   <a href="taint.configuration.php#ini.taint.error-level" class="link">taint.error_level</a>). Seuls
   les arguments de chaîne de premier niveau sont inspectés ; vider un
   tableau qui contient simplement des valeurs corrompues n&#039;émet pas
   d&#039;avertissement.
  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Points de sortie d&#039;affichage</strong></caption>
    
     <thead>
      <tr><th>Point de sortie</th><th>Vérifié</th></tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><code class="literal">echo</code>, <code class="literal">print</code></td>
       <td>l&#039;expression affichée</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.printf.php" class="function">printf()</a></span>, <span class="function"><a href="function.vprintf.php" class="function">vprintf()</a></span></td>
       <td>la chaîne de format et les valeurs substituées</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.print-r.php" class="function">print_r()</a></span>, <span class="function"><a href="function.var-dump.php" class="function">var_dump()</a></span>, <span class="function"><a href="function.var-export.php" class="function">var_export()</a></span></td>
       <td>la valeur vidée, quand c&#039;est une chaîne</td>
      </tr>

      <tr>
       <td><code class="literal">exit</code>/<code class="literal">die</code> avec un message</td>
       <td>le message</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.file-put-contents.php" class="function">file_put_contents()</a></span>, <span class="function"><a href="function.fwrite.php" class="function">fwrite()</a></span>, <span class="function"><a href="function.fputs.php" class="function">fputs()</a></span> vers <code class="literal">php://output</code></td>
       <td>les données écrites</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Points de sortie du système de fichiers</strong></caption>
    
     <thead>
      <tr><th>Point de sortie</th><th>Vérifié</th></tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><span class="function"><a href="function.fopen.php" class="function">fopen()</a></span>, <span class="function"><a href="function.opendir.php" class="function">opendir()</a></span>, <span class="function"><a href="function.unlink.php" class="function">unlink()</a></span></td>
       <td>le chemin</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.file.php" class="function">file()</a></span>, <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span>, <span class="function"><a href="function.file-get-contents.php" class="function">file_get_contents()</a></span>, <span class="function"><a href="function.highlight-file.php" class="function">highlight_file()</a></span>/<span class="function"><a href="function.show-source.php" class="function">show_source()</a></span></td>
       <td>le chemin</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.copy.php" class="function">copy()</a></span>, <span class="function"><a href="function.rename.php" class="function">rename()</a></span>, <span class="function"><a href="function.move-uploaded-file.php" class="function">move_uploaded_file()</a></span></td>
       <td>les chemins source et destination</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.mkdir.php" class="function">mkdir()</a></span>, <span class="function"><a href="function.rmdir.php" class="function">rmdir()</a></span>, <span class="function"><a href="function.touch.php" class="function">touch()</a></span></td>
       <td>le chemin</td>
      </tr>

      <tr>
       <td><code class="literal">include</code>, <code class="literal">include_once</code>, <code class="literal">require</code>, <code class="literal">require_once</code></td>
       <td>le chemin du fichier</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Points de sortie SQL</strong></caption>
    
     <thead>
      <tr><th>Point de sortie</th><th>Vérifié</th></tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><span class="function"><a href="mysqli.query.php" class="function">mysqli_query()</a></span>, <span class="function"><a href="mysqli.prepare.php" class="function">mysqli_prepare()</a></span>, <span class="function"><a href="mysqli.real-query.php" class="function">mysqli_real_query()</a></span>, <span class="function"><a href="mysqli.multi-query.php" class="function">mysqli_multi_query()</a></span></td>
       <td>la chaîne de requête</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.mysql-query.php" class="function">mysql_query()</a></span>, <span class="function"><strong>sqlite_query()</strong></span>, <span class="function"><strong>sqlite_single_query()</strong></span>, <span class="function"><a href="function.oci-parse.php" class="function">oci_parse()</a></span>, <span class="function"><a href="function.pg-query.php" class="function">pg_query()</a></span>, <span class="function"><a href="function.pg-send-query.php" class="function">pg_send_query()</a></span></td>
       <td>la chaîne de requête</td>
      </tr>

      <tr>
       <td><span class="methodname"><a href="mysqli.query.php" class="methodname">mysqli::query()</a></span>, <span class="methodname"><a href="mysqli.prepare.php" class="methodname">mysqli::prepare()</a></span>, <span class="methodname"><a href="mysqli.real-query.php" class="methodname">mysqli::real_query()</a></span>, <span class="methodname"><a href="mysqli.multi-query.php" class="methodname">mysqli::multi_query()</a></span></td>
       <td>la chaîne de requête</td>
      </tr>

      <tr>
       <td><span class="methodname"><a href="pdo.query.php" class="methodname">PDO::query()</a></span>, <span class="methodname"><a href="pdo.prepare.php" class="methodname">PDO::prepare()</a></span>, <span class="methodname"><a href="pdo.exec.php" class="methodname">PDO::exec()</a></span></td>
       <td>la chaîne de requête</td>
      </tr>

      <tr>
       <td><span class="methodname"><a href="sqlite3.query.php" class="methodname">SQLite3::query()</a></span>, <span class="methodname"><a href="sqlite3.prepare.php" class="methodname">SQLite3::prepare()</a></span>, <span class="methodname"><a href="sqlite3.exec.php" class="methodname">SQLite3::exec()</a></span>, <span class="methodname"><strong>SQLiteDatabase::query()</strong></span>, <span class="methodname"><strong>SQLiteDatabase::singleQuery()</strong></span></td>
       <td>la chaîne de requête</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Points de sortie d&#039;exécution de commandes</strong></caption>
    
     <thead>
      <tr><th>Point de sortie</th><th>Vérifié</th></tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><span class="function"><a href="function.exec.php" class="function">exec()</a></span>, <span class="function"><a href="function.system.php" class="function">system()</a></span>, <span class="function"><a href="function.passthru.php" class="function">passthru()</a></span>, <span class="function"><a href="function.shell-exec.php" class="function">shell_exec()</a></span> (y compris l&#039;opérateur backtick)</td>
       <td>la chaîne de commande</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.proc-open.php" class="function">proc_open()</a></span>, <span class="function"><a href="function.popen.php" class="function">popen()</a></span></td>
       <td>la chaîne de commande</td>
      </tr>

      <tr>
       <td><code class="literal">eval</code></td>
       <td>le code évalué</td>
      </tr>

      <tr>
       <td>les appels dynamiques tels que <code class="literal">$func()</code>, <code class="literal">$obj-&gt;$method()</code>, <span class="function"><a href="function.call-user-func.php" class="function">call_user_func()</a></span>, les callables tableaux</td>
       <td>le nom de fonction/méthode/classe en cours de résolution</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.preg-match.php" class="function">preg_match()</a></span>, <span class="function"><a href="function.preg-match-all.php" class="function">preg_match_all()</a></span>, <span class="function"><a href="function.preg-replace.php" class="function">preg_replace()</a></span>, <span class="function"><a href="function.preg-split.php" class="function">preg_split()</a></span>, <span class="function"><a href="function.preg-grep.php" class="function">preg_grep()</a></span>, <span class="function"><a href="function.preg-replace-callback.php" class="function">preg_replace_callback()</a></span></td>
       <td>le motif (et le nom du callback pour <span class="function"><a href="function.preg-replace-callback.php" class="function">preg_replace_callback()</a></span>)</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Points de sortie d&#039;en-têtes et cookies</strong></caption>
    
     <thead>
      <tr><th>Point de sortie</th><th>Vérifié</th></tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><span class="function"><a href="function.header.php" class="function">header()</a></span></td>
       <td>la chaîne d&#039;en-tête</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.setcookie.php" class="function">setcookie()</a></span>, <span class="function"><a href="function.setrawcookie.php" class="function">setrawcookie()</a></span></td>
       <td>le nom et la valeur du cookie</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Autres points de sortie</strong></caption>
    
     <thead>
      <tr><th>Point de sortie</th><th>Vérifié</th></tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><span class="function"><a href="function.unserialize.php" class="function">unserialize()</a></span></td>
       <td>la chaîne sérialisée</td>
      </tr>

      <tr>
       <td><span class="function"><a href="function.mail.php" class="function">mail()</a></span></td>
       <td>le destinataire, le sujet, les paramètres supplémentaires et les en-têtes supplémentaires (le corps du message est du contenu et n&#039;est pas vérifié)</td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="simpara">
   Les avertissements suivent le format
   <code class="literal">function_name() [sink]: message</code>, où
   <code class="literal">sink</code> identifie l&#039;opération vérifiée (par exemple
   <code class="literal">echo</code>, <code class="literal">include</code> ou le nom de la
   fonction) et le message décrit ce qui a été trouvé comme potentiellement
   corrompu.
  </p>
 </div><?php manual_footer($setup); ?>