PHP使用htmlspecialchars方法实现像ASP的Server.HTMLEncode一样的效果

时间:2022-07-25
本文章向大家介绍PHP使用htmlspecialchars方法实现像ASP的Server.HTMLEncode一样的效果,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在PHP网页程序实际应用中,为了应对不断扫描的SQL漏洞扫描工具,我们应该对网页传递的参数进行一系列的处理。

第一步就是将获取来的参数转换为HTML实体,这样可以应对一些在参数中加入<script>或 sql语法重置的语句。

这时候在PHP中我们就需要一个类似于ASP的Server.HTMLEncode一样的方法。

PHP当然也有类似这样的方法那就是 htmlspecialchars,而且还提供一个转回方法 htmlspecialchars_decode()

官方说明:

从官方描述我们可以发现,它把预定的几个字符全部转换成为HTML实体,这几个字符就是SQL注入语句的命脉,不管怎么变,都需要有这几个字符。所以我们使用 htmlspecialchars完全可以作为防止SQL注入的第一步。

下面来看一个实例:

echo htmlspecialchars("<script>")

使用 htmlspecialchars 转换后我们得到的结果如下:

&lt;script&gt;gt;

可以看到 <> 这两个符号已经被转义为HTML实体了,这样最初期的 SQL注入里面的JS代码就跑不起来了。

当然要防止SQL注入这仅仅是第一步而已,我们还需要对获取的参数进行多次对比、替换、真实性检验等。不同的应用场景有不同的处置方式。以后在使用过程中碰到的话会再更新。