什么是XSS攻击,比如,比如,
我们把网站发布在网上,有一些恶意的用户在提交数据的时候会在表单输入js,css.a标签之类的这些html语言,然后这些数据被保存到数据库,那么我们要调用这些数据的时候,这些数据被原封不动的被呈现在网页上,这些数据是可以被html所识别的,届时我的的页面就会变得乱七八糟的。
怎么解决呢,我们只要在这些数据没有插入数据库前调用php内置函数将这些特殊的字符转换为html实体。接下来我们来谈谈php的这几个内置函数。
*1.htmlentities — 将字符转换为 HTML 转义字符
用法:
htmlentities( string $string[, int $flags = ENT_COMPAT | ENT_HTML401[, string $encoding = ini_get("default_charset")[, bool $double_encode = true]]] ) : string
*2.htmlspecialchars — 将特殊字符转换为 HTML 实体(这个函数与htmllentities函数的去别是,htmlentities会转换所有HTML 实体的字符,而这个函数就只转换以下特殊字符的html实体)
- & (& 符号) ‘&’;
- " (双引号) ‘"’,
- ’ (单引号) 设置了 ENT_QUOTES 后, ‘'’;(如果是 ENT_HTML401) ,或者 ‘&apos’; (如果是 ENT_XML1、 ENT_XHTML 或 ENT_HTML5)。
- (小于号) ‘<’;
- (大于号) ‘<’;
用法:
htmlspecialchars( string $string[, int $flags = ENT_COMPAT | ENT_HTML401[, string $encoding = ini_get("default_charset")[, bool $double_encode = TRUE]]] ) : string