关于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 ,因为在转义中文的时候会有问题,并不推荐使用就不记录了(必要的时候再看手册吧)

 

posted @ 2021-04-07 20:18  缘来是你~~~  阅读(230)  评论(0)    收藏  举报