安全防范知识点 XSS CSRF

1. 能不能说一说XSS攻击?

XSS 攻击是指浏览器中执行恶意脚本, 然后拿到用户的信息进行操作。XSS 简单点来说,就是攻击者想尽一切办法将可以执行的代码注入到网页中。

  1. 窃取Cookie。
  2. 监听用户行为,比如输入账号密码后直接发送到黑客服务器。
  3. 修改 DOM 伪造登录表单。
  4. 在页面中生成浮窗广告

主要分为存储型、反射型和文档型。

  • 存储型,顾名思义就是将恶意脚本存储了起来,确实,存储型的 XSS 将脚本存储到了服务端的数据库,然后在客户端执行这些脚本,从而达到攻击的效果。
  • 反射型XSS指的是恶意脚本作为网络请求的一部分
  • 文档型的 XSS 攻击并不会经过服务端,而是作为中间人的角色,在数据传输过程劫持到网络数据包,然后修改里面的 html 文档。 这样的劫持方式包括WIFI路由器劫持或者本地恶意软件

防范的措施包括:

  • 一个信念: 不要相信用户的输入,对输入内容转码或者过滤,让其不可执行。
    • 对用户的输入进行转码或者过滤
  • 两个利用:
    • 利用 CSP,利用 Cookie 的 HttpOnly 属性。

    • 设置 Cookie 的 HttpOnly 属性后,JavaScript 便无法读取 Cookie 的值

2. 能不能说一说CSRF攻击?

CSRF(Cross-site request forgery), 即跨站请求伪造,指的是黑客诱导用户点击链接,打开黑客的网站,然后黑客利用用户目前的登录状态发起跨站请求。

CSRF攻击一般会有三种方式:

  • 自动 GET 请求
  • 自动 POST 请求
  • 诱导点击发送 GET 请求。

防范措施:

  • 利用 Cookie 的 SameSite 属性
    • CSRF攻击中重要的一环就是自动发送目标站点下的 Cookie
    • SameSite可以设置为三个值,Strict、Lax和None。
    • 该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。
  • 验证来源站点
    • Origin只包含域名信息,而Referer包含了具体的 URL 路径
    • 对于需要防范 CSRF 的请求,我们可以通过验证 Referer 来判断该请求是否为第三方网站发起的。
  • CSRF Token
    • 首先,浏览器向服务器发送请求时,服务器生成一个字符串,将其植入到返回的页面中。
    • 然后, 浏览器如果要发送请求,就必须带上这个字符串,然后服务器来验证是否合法,如果不合法则不予响应。
    • 服务器下发一个随机 Token,每次发起请求时将 Token 携带上,服务器验证 Token 是否有效。

参考于神三元的博客: http://47.98.159.95/my_blog/

你可能感兴趣的:(前端,学习总结)