什么是 XSS 漏洞?PHP 如何防范 XSS 攻击?

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

提示:

  • XSS 的全称是什么?
  • 黑客使用 XSS 攻击的目的是什么?
  • 需要显示用户提交的 HTML 内容,如何防范 XSS?
摈弃世俗浮躁,追求技术精湛
Summer
讨论数量: 3

XSS (Cross-Site-Script) 跨站脚本攻击。

早期的 XSS 攻击是指在 B 站点模拟 A 站点的请求操作,后来大家都提升了这方面的安全意识,比如在 A 站点的表单中添加 csrf_token,该 token 是基于用户 SessionID 生成的,这完全杜绝了 B 站点冒充 A 站点用户进行攻击。


如今 XSS 攻击大多以 Script 脚本注入为主,在用户 提交表单 或者 上传文件 的地方,开发人员可能会疏于防范,渗透脚本一旦被执行,后果不堪设想。


渗透脚本一旦被执行,常见的操作有:

  1. 监听键盘事件,比如用户输入的密码等
  2. 发送数据到黑客服务器
  3. 修改页面 DOM 节点,比如把 form 表单提交地址改为黑客的地址
  4. 窃取 CookieSessionID 冒充用户
  5. 流量劫持,用户输入网址 A,跳转网址 B
  6. 添加广告弹窗,误导用户

通常黑客渗透一个站点也是需要成本的,这其中需要耗费时间,精力,金钱,通常可能是受雇于三方客户。或者觉得渗透站点有利可图,才会做这些事情。

以上所说的操作中,最常见就是窃取用户信息,冒充用户,黑客之所以选择 XSS 渗透,大概这可能是Web防御中 最薄弱,最容易忽略 的部分。

不要信任用户上传的任何数据 如果需要显示用户提交的 HTML,在用户提交 HTML 代码后,可以使用第三方包来过滤掉危险的标签 mewebstudio/Purifier

2年前 评论

XSS (Cross-Site-Script) 跨站脚本攻击。

早期的 XSS 攻击是指在 B 站点模拟 A 站点的请求操作,后来大家都提升了这方面的安全意识,比如在 A 站点的表单中添加 csrf_token,该 token 是基于用户 SessionID 生成的,这完全杜绝了 B 站点冒充 A 站点用户进行攻击。


如今 XSS 攻击大多以 Script 脚本注入为主,在用户 提交表单 或者 上传文件 的地方,开发人员可能会疏于防范,渗透脚本一旦被执行,后果不堪设想。


渗透脚本一旦被执行,常见的操作有:

  1. 监听键盘事件,比如用户输入的密码等
  2. 发送数据到黑客服务器
  3. 修改页面 DOM 节点,比如把 form 表单提交地址改为黑客的地址
  4. 窃取 CookieSessionID 冒充用户
  5. 流量劫持,用户输入网址 A,跳转网址 B
  6. 添加广告弹窗,误导用户

通常黑客渗透一个站点也是需要成本的,这其中需要耗费时间,精力,金钱,通常可能是受雇于三方客户。或者觉得渗透站点有利可图,才会做这些事情。

以上所说的操作中,最常见就是窃取用户信息,冒充用户,黑客之所以选择 XSS 渗透,大概这可能是Web防御中 最薄弱,最容易忽略 的部分。

不要信任用户上传的任何数据 如果需要显示用户提交的 HTML,在用户提交 HTML 代码后,可以使用第三方包来过滤掉危险的标签 mewebstudio/Purifier

2年前 评论

XSS 的全称是什么?
不知道
黑客使用 XSS 攻击的目的是什么?
利用JS的脚本獲取數據和進行一些非法操作。例如 當 用戶 登錄的時候 一般客戶端會有 cookie和token之類的數據,如果客戶端從服務端獲取 數據時 里面有恶意的代码时,就可以获取用户端的cookie信息或者token,如果攻击者熟悉 该网站js代码流程 随意 获取登录者的任何信息不成问题
需要显示用户提交的 HTML 内容,如何防范 XSS?
后端转义保存到数据库,前端分解数据 比如

2年前 评论

xss,跨域脚本攻击
用户提交的数据,如果不需要用到html,strip_tags过滤标签,urlcode进行转义(“,’ < > 符号)
需要用到html,根据需要过滤

标签的href,等

还有所有标签上的事件,比如onclick,onload 等
用户的敏感操作加验证码或token

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!