浅谈xss和csrf攻击

文章目录

  • 前言
  • 一、XSS是什么?
    • 存储型(持久型)
    • 反射型(非持久型)
    • dom型
  • 二、CSRF是什么?
  • 总结


前言

由于博主目前在一家主做网络安全的公司实习,之前没有意识到网络安全的严重性,现在才感受到我们的系统存在了这么多问题,很容易被黑客攻入。下面我们一起来聊一聊最常见的两种攻击方式,xss和csrf吧!

一、XSS是什么?

XSS 全称是 Cross Site Scripting(即跨站脚本),为了和CSS区分,故叫它XSS。XSS攻击是指浏览器中执行恶意脚本(无论是跨域还是同域),从而拿到用户的信息并进行操作。

XSS的危害:

  • 窃取Cookie
  • 监听用户行为,比如用户登录后发送账号和密码到黑客服务器。
  • 修改 DOM 伪造登录表单
  • 在页面中添加弹窗或广告,骗取用户点击。

原因:当用户的输入或者一些用户可控参数未经处理地输出到页面上,就容易产生XSS漏洞。

XSS攻击的实现一般有三种方式——存储型(持久型)、反射型(非持久型)和dom型。原理都比较简单,让我们来看一看吧。

存储型(持久型)

存储型,顾名思义就是将恶意脚本存储了起来,确实,存储型的 XSS 将脚本存储到了服务端的数据库,然后在客户端执行这些脚本,从而达到攻击的效果。

不需要特制的链接来执行。黑客仅仅需要提交 XSS 漏洞利用代码到一个网站上其他用户可能访问的地方。常见的场景一般是:留言板、评论区等存储进数据库的操作页面。

例如:


当数据库存储时,每当我打开这个网站,便会执行一次alert命令。

防范措施:

  • 前端和后端一起做数据过滤,前端可以使用axios拦截器,在发送请求前先过滤一遍数据,后端在接收时再过滤一遍。
  • 很多XSS攻击脚本都是用来窃取Cookie, 而设置Cookie的HttpOnly属性后,JavaScript 便无法读取Cookie的值。这样也能很好的防范 XSS 攻击。

注意:没有绝对的功与防,我们能做的便是把风险降到最低!

反射型(非持久型)

反射型XSS指的是恶意脚本作为网络请求的一部分。

例如:

http://csdn.com?id=

在服务器端会拿到id参数,然后将内容返回给浏览器端,浏览器将这些内容作为HTML的一部分解析,发现是一个脚本,直接执行,这样就被攻击了

防范:

  • 后端对接收的参数也做过滤

dom型

dom型的XSS攻击并不会经过服务端,而是作为中间人的角色,在数据传输过程劫持到网络数据包,然后修改里面的html文档。

防范:

  • 不要相信任何用户输入的数据,都要进行处理!

二、CSRF是什么?

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

CSRF的危害:

  • 进入页面后自动提交表单,获取用户cookies
  • 诱导用户进入页面后点击链接,完成进攻

防范:

  • 验证来源站点,HTTP Referer 字段(Referer 值会记录下用户的访问来源)
  • 在请求地址中添加token并验证

总结

以上只是对xss和csrf的简单描述哦。

没有绝对的安全!

你可能感兴趣的:(技术文章,xss,csrf)