为了账号安全,请及时绑定邮箱和手机立即绑定

html_entity_decode 的用例安全性

html_entity_decode 的用例安全性

PHP
繁华开满天机 2023-10-21 10:35:27
我正在使用 php 收集表单数据并将其发送到电子邮件地址。我正在使用 php filter_vars 来清理条目。事实上,这会返回电子邮件正文中的编码 html。例如,我变成了I'm$message = "";$message = $_POST["message"];$message = filter_var($message, FILTER_SANITIZE_STRING);$message = wordwrap($message, 70);...$Body .= $message;$success = mail($EmailTo, $Subject, $Body, $headers); 我的问题是:如果我在电子邮件中使用 htmlspecialchars_decode $Body .= htmlspecialchars_decode($message),我是否会撤消清理并重新打开漏洞?我将如何安全地将编码的 html 转换为 html 实体,以便我的客户可以阅读电子邮件?
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

FILTER_SANITIZE_STRING用于剥离标签,可选择剥离或编码特殊字符

所以你只是剥离标签并编码其他东西。要不对引号进行编码,请使用过滤器标志FILTER_FLAG_NO_ENCODE_QUOTES

$message = filter_var($message, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);


但是,htmlspecialchars_decode($message)应该没问题,因为您已经删除了 HTML 标签,这只会解码其他实体,如引号' "、& 符号&等。话虽这么说,您可以strip_tags($message)首先使用将引号和 & 符号单独保留的位置。


查看完整回答
反对 回复 2023-10-21
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信