boz*_*doz 1 php foreach htmlspecialchars
我想知道使用以下代码是否存在重大缺点:
if(isset($_GET)){
foreach($_GET as $v){
$v = htmlspecialchars($v);
}
}
Run Code Online (Sandbox Code Playgroud)
我意识到可能没有必要在每个变量上使用htmlspecialchars.任何人都知道这是好事吗?
更新:
因为我不认为上面的代码会起作用,所以我用我正在使用的代码更新它(尽管对建议有消极性).:)
if(isset($_GET)){
foreach($_GET as $k=>$v){
$_GET[$k] = htmlspecialchars($v);
}
}
Run Code Online (Sandbox Code Playgroud)
这完全取决于你想做什么.
一般来说,答案是"不",您应该只为特定目的逃避数据.无目的地随意转义数据无济于事,它只会引起进一步的混乱,因为你必须跟踪被转义的内容和方式.
简而言之,保持您的数据以原始方式存储,并在使用时专门为其预期用途转义:
htmlentities().escapeshellcmd().escapeshellarg().urlencode()参数值.这种推理适用于递归.因此,如果您要编写指向HTML输出的GET URL的链接,它将是这样的:
echo "<a href=" . htmlentities("$url?q=" . urlencode($var)) . ">click</a>";
Run Code Online (Sandbox Code Playgroud)
如果在那一点上你必须记住$var以前是否已经逃脱过,那将是非常可怕的.
| 归档时间: |
|
| 查看次数: |
970 次 |
| 最近记录: |