我想知道下面示例的最佳实践是什么。
<?php
if(isset($_POST['query'])){
$out = $_POST['query'];
}
?>
<div><?php echo $out; ?></div>
<input type="text" value="<?php echo $out; ?>" />
使用上述代码会对网站构成威胁。或者我需要在使用上面之前准备输出吗?我所说的准备是指对其进行编码或转义特殊字符。
我知道您需要转义它并验证数据库使用的输入,那么输出它怎么样?
最佳答案
是的,既然你要把它放入 HTML 中,你应该使用 htmlspecialchars
适本地编码 HTML 的特殊字符。 :
if (isset($_POST['query'])) {
$out = htmlspecialchars($_POST['query']);
}
除此之外,$out
仅在$_POST['query']
存在时定义;如果 $_POST['query']
不存在,您应该考虑使用默认值。因为否则,当 register globals已启用(仅此一点是个坏主意),您可以通过 URL 查询字符串使用 ?out=...
设置该变量。
关于php - PHP 输出的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4213686/