htmlspecialchars()函数的作用,用简单的例子告诉你具体用法!

2年前 (2023-03-30)阅读534回复0
翱翔MJ
翱翔MJ
  • 管理员
  • 注册排名1
  • 经验值3675
  • 级别管理员
  • 主题605
  • 回复325
楼主

htmlspecialchars把HTML中的几个特殊字符转义成HTML Entity(格式:&xxxx;)形式,包括(&),(‘),(“),(<),(>)五个字符,用来过滤$GET,$POST,$COOKIE数据,预防XSS。

假设有一个文本框用于输入用户的评论内容,并且该评论会被展示在页面上。为了避免用户输入恶意的 HTML 标签或者脚本,我们可以对用户输入的评论内容进行过滤和转义。具体的代码如下:

<form action="submit.php" method="post">

<label for="comment">请发表评论:</label>

<textarea id="comment" name="comment"></textarea>

<input type="submit" value="提交评论" onclick="save()">

</form>

submit.php 中,我们可以使用 htmlspecialchars() 函数对提交的评论内容进行转义,例如:

if (isset($_POST['comment'])) { 

 $comment = htmlspecialchars($_POST['comment'], ENT_QUOTES, 'UTF-8');  // 将评论内容插入数据库等操作

}

在上述代码中,htmlspecialchars() 函数的第一个参数表示需要转义的字符串,第二个参数 ENT_QUOTES 表示同时转义单引号和双引号,第三个参数 UTF-8 表示字符集为 UTF-8。该函数会将输入的评论内容中的 HTML 特殊字符(例如 <, >, &, ', " 等)转换为对应的 HTML 实体,从而避免了恶意标签的注入和 XSS 攻击。 例如,如果用户输入了如下评论内容:

<script>alert("恶意攻击");</script>

经过转义后,该评论内容会变成:

&lt;script&gt;alert(&quot;恶意攻击&quot;);&lt;/script&gt;

这样,在页面上展示该评论时,就不会执行恶意脚本了,而是直接展示为字符串。


1
回帖

htmlspecialchars()函数的作用,用简单的例子告诉你具体用法! 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息