php - PHP 输出的最佳实践

标签 php encoding

我想知道下面示例的最佳实践是什么。

<?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/

相关文章:

c# - 具有特殊字符的 Asp.net C# 电子邮件地址

hibernate + nvl()= 甲骨文 01465

php - 在 WordPress 中向编辑器显示仅限管理员的子菜单链接。结果出错

php - Swift 邮件未捕获无效电子邮件的异常

c++ - 使用 C++ 将越南语字符从 ISO88591、UTF8、UTF16BE、UTF16LE、UTF16 编码为十六进制,反之亦然

java - Base64 编码对文件名安全吗?

python - 无法以 UTF-8 进行解码/编码

php - 将我的站点升级到 1.9.3.0 并出现错误 SQLSTATE[42S22] : Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent'

php - 解析使用 GD 库创建的临时文件图像对象以解析 mPDF 中的 GIF 图像时出错

php - 居中对齐纯文本 (php)