一. 问:xss 和 csrf 到底有的不同怎么理解
你可以能会问,xss, 和 csrf 都是 1. 用户点击链接作为必要的触发途径, 2. 执行了script脚本文件 那么他们到底有什么不同呢。
答: 从 3 个方面分析。
-
先从名字看分析。
XSS: 跨站脚本攻击,csrf: 跨站请求伪造。- 这两个都涉及到跨域请求,例如,你点击的恶意链接, 看的恶意网站,都是从另一个和目的站点不同的 域发起的工具。
- XSS 被攻页面执行了恶意的脚本,并弹出,显示等( 在页面层面 )
狭义理解:执行了脚本,不发送接口请求,为了获取用户身份
- csrf 攻击者模拟一个正常的用户请求,像后端发送了接口请求 (接口层面)
狭义理解:发出了接口请求,无需获取用户身份信息
-
从攻击的途径进行分析
-
XSS: 在页面上执行了 恶意脚本,黑客的多数目的都是为了 通过脚本获取 用户的 cookie 信息(
通过脚本向黑客的站点发送用户信息
)
黑客的目标就是为了获取你的身份信息
示例:你逛某个博客,博客底部有人留言一个链接,指向 github 的链接(连接中带有 恶意的 alert script 脚本,你点击留言的链接,页面跳转到 github 后弹出了弹框)
-
CSRF: 用户已经登录,黑客通过恶意脚本生成可用的接口,请求服务器数据( 比如删除文章,转载邮件等 )
黑客无须知道你的身份信息( 因为你就在已经登录的环境值执行接口 )
示例:你收到一封 iPhone 免费送的邮件( 这时候你已经登录 gmail 邮箱了 ), 这封邮件中有一个链接,你点击连接后黑客远程下载一个脚本并执行( 模拟gmail 的删除全部邮件的接口), 然后你看到自己当前的邮件全部被删除了
说明:黑客模拟的接口和 gmail 的接口完全一样,因为你在自己的邮箱中,所以可以直接获取到自己的登录信息
-
‘;