(Taint >=0.1.0)
taint — 将字符串标记为已污染
手动把指定的字符串标记为已污染,效果如同它们来自用户输入。 变量以引用方式传入,但标记本身存储于字符串而非变量之上: 共享同一字符串的所有变量会同时变为已污染状态。
该函数主要用于测试,以及在 » $_GET、 » $_POST 和 » $_COOKIE 超全局变量没有数据的 CLI 脚本中模拟用户输入。
string持有待标记字符串的变量。
strings更多待标记的变量。
始终返回 true。当
taint.enable 未开启时,
该函数不做任何事,但仍然返回 true。
示例 #1 taint() 示例
<?php
$name = "world";
taint($name);
var_dump(is_tainted($name));
?>以上示例的输出类似于:
bool(true)
注意:
只有非空字符串会被标记;持有其他类型或空字符串的变量会被静默忽略。
注意:
interned、persistent 和 permanent 字符串(字符串字面量、 opcache 共享的字符串)永远无法携带标记,会被静默跳过。