文章目录
前言
由于博主目前在一家主做网络安全的公司实习,之前没有意识到网络安全的严重性,现在才感受到我们的系统存在了这么多问题,很容易被黑客攻入。下面我们一起来聊一聊最常见的两种攻击方式,xss和csrf吧!
一、XSS是什么?
XSS 全称是 Cross Site Scripting(即跨站脚本),为了和CSS区分,故叫它XSS。XSS攻击是指浏览器中执行恶意脚本(无论是跨域还是同域),从而拿到用户的信息并进行操作。
XSS的危害:
- 窃取Cookie
- 监听用户行为,比如用户登录后发送账号和密码到黑客服务器。
- 修改 DOM 伪造登录表单
- 在页面中添加弹窗或广告,骗取用户点击。
原因:当用户的输入或者一些用户可控参数未经处理地输出到页面上,就容易产生XSS漏洞。
XSS攻击的实现一般有三种方式——存储型(持久型)、反射型(非持久型)和dom型。原理都比较简单,让我们来看一看吧。
存储型(持久型)
存储型,顾名思义就是将恶意脚本存储了起来,确实,存储型的 XSS 将脚本存储到了服务端的数据库,然后在客户端执行这些脚本,从而达到攻击的效果。
不需要特制的链接来执行。黑客仅仅需要提交 XSS 漏洞利用代码到一个网站上其他用户可能访问的地方。常见的场景一般是:留言板、评论区等存储进数据库的操作页面。
例如:
<script>alert('我进来了')</script>
当数据库存储时,每当我打开这个网站,便会执行一次alert命令。
防范措施:
- 前端和后端一起做数据过滤,前端可以使用axios拦截器,在发送请求前先过滤一遍数据,后端在接收时再过滤一遍。
- 很多XSS攻击脚本都是用来窃取Cookie, 而设置Cookie的HttpOnly属性后,JavaScript 便无法读取Cookie的值。这样也能很好的防范 XSS 攻击。
注意:没有绝对的功与防,我们能做的便是把风险降到最低!
反射型(非持久型)
反射型XSS指的是恶意脚本作为网络请求的一部分。
例如:
http://csdn.com?id=<script>alert("我进来了")</script>
在服务器端会拿到id参数,然后将内容返回给浏览器端,浏览器将这些内容作为HTML的一部分解析,发现是一个脚本,直接执行,这样就被攻击了
防范:
- 后端对接收的参数也做过滤
dom型
dom型的XSS攻击并不会经过服务端,而是作为中间人的角色,在数据传输过程劫持到网络数据包,然后修改里面的html文档。
防范:
- 不要相信任何用户输入的数据,都要进行处理!
二、CSRF是什么?
CSRF(Cross-site request forgery), 即跨站请求伪造,指的是黑客诱导用户点击链接,打开黑客的网站,然后黑客利用用户目前的登录状态发起跨站请求。
CSRF的危害:
- 进入页面后自动提交表单,获取用户cookies
- 诱导用户进入页面后点击链接,完成进攻
防范:
- 验证来源站点,HTTP Referer 字段(Referer 值会记录下用户的访问来源)
- 在请求地址中添加token并验证
总结
以上只是对xss和csrf的简单描述哦。
没有绝对的安全!
转载自:
https://www.csdn.net/tags/MtTaAgysODQ2NzQwLWJsb2cO0O0O.html#_7