【问题标题】:PHP XSS validation not workingPHP XSS 验证不起作用
【发布时间】:2015-10-13 19:00:54
【问题描述】:

我编写了一个简单的联系表单脚本,并尝试使用 W3School 上描述的方法向它添加 XSS 验证。不幸的是,如果我在其中一个字段中输入“

谁能建议我做错了什么?

数据收集部分

$name = $co = $email = $tel = $message = "";

if ($_SERVER["REQUEST_METHOD"] == "POST"){
$name = test_input($_REQUEST['name']);
$co = test_input($_REQUEST['company']);
$email = test_input($_REQUEST['email']);
$tel = test_input($_REQUEST['tel']);
$message = test_input($_REQUEST['message']);
}

数据测试功能

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

非常感谢

【问题讨论】:

标签: php contact-form


【解决方案1】:

也许您的电子邮件客户端已配置为将电子邮件显示为 HTML。 htmlspecialchars 会将 < 尝试将您的电子邮件显示为纯文本。

【讨论】:

  • 感谢您的建议。我将 Outlook 设置为以纯文本形式阅读邮件,但仍然显示“
  • 我在您提供的代码中没有发现任何问题。也许在发送电子邮件之前会发生一些重新转换?您最好使用$_POST 而不是$_REQUEST
  • 谢谢,我尝试了 $_POST 和 $_REQUEST 并且结果相同,但我认为你是对的。我认为正在发生的事情(从我从 Outlook 收到的消息中)是它将消息作为 HTML 检索,然后将其转换为纯文本,我想这会导致“
猜你喜欢
  • 2014-01-27
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2015-08-05
相关资源
最近更新 更多