php xss攻击

一、什么是xss攻击

xss攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括php、VBScript、ActiveX、 Flash 或者甚至是普通的HTML。

二、攻击类型

  • 存储型: 最直接的危害类型,跨站代码存储在服务器(数据库)。
    在这里插入图片描述

  • 反射型: 反射型跨站脚本漏洞,最普遍的类型。

在这里插入图片描述

  • DOM型: DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。

在这里插入图片描述

三、php相关处理函数

1、htmlspecialchars 函数

将特殊字符转换为 HTML 实体

语法:

htmlspecialchars(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): string

选项参数:

	string:待转换的字符串。

其他参数通常不需要,要用时可参考:htmlspecialchars 函数

字符替换变化:

字符 替换后
& (& 符号) &
" (双引号) ",除非设置了 ENT_NOQUOTES
' (单引号) 设置了 ENT_QUOTES 后, ' (如果是 ENT_HTML401) ,或者 ' (如果是 ENT_XML1、 ENT_XHTML 或 ENT_HTML5)。
< (小于) &lt;
> (大于) &gt;

2、htmlentities 函数

本函数各方面都和 htmlspecialchars() 一样,除了 htmlentities() 会转换所有具有 HTML 实体的字符。

语法:


htmlentities(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): string

选项参数:

	string:待转换的字符串。

其他参数通常不需要,要用时可参考:htmlentities 函数

3、strip_tags 函数

从字符串中去除 HTML 和 PHP 标签

语法:


strip_tags(string $string, array|string|null $allowed_tags = null): string

选项参数:

	string:输入字符串。
	
	allowed_tags:使用可选的第二个参数指定不被去除的标签列表。要么是 string,要么自 PHP 7.4.0 起是 array。

具体可参考:strip_tags 函数

猜你喜欢

转载自blog.csdn.net/change_any_time/article/details/128768137