PHP 安全问题入门之 XSS 攻击与防范

2020-03-10编程429

什么是XSS攻击

XSS攻击是指攻击者往web页面插入恶意的代码(HTML或Javascript), 当用户浏览网页时, 嵌入web页面的恶意代码会被执行, 从而达到攻击(获取)用户(信息)的目的.

此类攻击: 

一是向web页面植入Javascript代码, 一旦代码执行成功将会偷走用户的个人信息(账号被盗).

二是向web页面植入HTML代码从而达到篡改网站页面的目的.

 

如何防范XSS攻击

永远不要相信用户输入的任何信息!!!

要做到防范XSS攻击最直接的办法是过滤用户所有请求的信息!

一是过滤所有请求的Javascript代码! 注: 前端用户哪怕是后台管理者正常请求都不会有Javascript代码! 如百度统计的Javascript代码强烈要求直接写入模板!

 

二是对所有请求数据进行过滤与转义:

strip_tags方法过滤到不需要的HTML标签, 保留安全标签. 如div, p, table等, 最好过滤标签上的style样式(我公司编辑经常直接粘贴其它网站内容发布到公司系统中导致前端显示异常的错误)

htmlentities方法进行HTML标签转义,

 

三是不要将重要的信息写入Cookie中(如果非写不可最好加密处理), PHP创建Cookie时最好设置为HTTP ONLY.

没有必要的业务需求, 建议不要创建Cookie. 它不仅会导致网站响应变慢(头部请求数据量增大), 并且会泄露用户信息(记住密码等).