关于php防止xss攻击的一些小东西
1.什么是xss攻击
xss攻击全称Cross SiteScript(跨站脚本攻击),是web程序中常见的漏洞,其原理就是利用向被攻击的网站中传输具有恶意的HTML代码,当用户浏览网页的时候这个HTML代码就会运行,从而达到攻击者的目的
2.常见的一些xss攻击
js脚本:攻击者利用js脚本实现一些目的,例如恶意弹窗,不停的刷新网页以至用户无法正常使用网站
html代码:利用html代码实现页面的不间断刷新或者是恶意跳转到其他的链接
3.php如何预防
php有一个内置的函数 htmlspecialchars 这个函数可以将特殊的html字符转换为实体,让后在页面输出的时候将html代码作为字符串输出
如果想要还原直接用 htmlspecialchars_decode 就好了 这两个函数的传入值是一样的,第一个是要转换的字符串 第二个这是转换模式
(偷懒直接把手册的表格拖过来了,两个函数是一样的)
| 常量名称 | 描述 |
|---|---|
ENT_COMPAT |
会转换双引号,不转换单引号。 |
ENT_QUOTES |
既转换双引号也转换单引号。 |
ENT_NOQUOTES |
单/双引号都不转换 |
ENT_IGNORE |
静默丢弃无效的代码单元序列,而不是返回空字符串。 不建议使用此标记, 因为它» 可能有安全影响。 |
ENT_SUBSTITUTE |
替换无效的代码单元序列为 Unicode 代替符(Replacement Character), U+FFFD (UTF-8) 或者 � (其他),而不是返回空字符串。 |
ENT_DISALLOWED |
为文档的无效代码点替换为 Unicode 代替符(Replacement Character): U+FFFD (UTF-8),或 �(其他),而不是把它们留在原处。 比如以下情况下就很有用:要保证 XML 文档嵌入额外内容时格式合法。 |
ENT_HTML401 |
以 HTML 4.01 处理代码。 |
ENT_XML1 |
以 XML 1 处理代码。 |
ENT_XHTML |
以 XHTML 处理代码。 |
ENT_HTML5 |
以 HTML 5 处理代码。 |
还有另一个函数叫 htmlentities ,因为在转义中文的时候会有问题,并不推荐使用就不记录了(必要的时候再看手册吧)

浙公网安备 33010602011771号