计算机基础-XSS与CRSF

2022-06-14 15:52:09 浏览数 (1)

前言

有句话说基础不牢,地动山摇,不得不说,对于软件开发来说计算机基础知识的重要性是不言而喻的,今天来对XSS和CRSF来做一个知识的梳理,平时在实际项目中确实对于这方面的知识是没有意识的,当你懂的东西越多,了解的越多,才会心生敬畏之心,慢慢精益求精

XSS的概念

XSS(Cross Site Scripting):跨站脚本攻击,为了不和前端开发中层叠样式表(CSS)冲突,简称为XSS,XSS是指黑客通过技术手段向正常用户请求的html页面中插入恶意脚本,主要用于信息窃取、破坏等目的

分类

  • 反射型XSS、存储型XSS和DOM型XSS

出现原因

XSS问题出在用户数据没有过滤、转义

从技术上来说,后端Java开发人员、前端开发人员都有可能造成XSS漏洞

如何防范XSS

主要是对用户输入数据做过滤或者转义

  • 比如java开发人员可以使用jsoup框架对用户输入的字符串做XSS过滤
  • 使用框架提供的工具类对用户输入的字符串做HTML转义(例如Spring提供的HtmlUtils)
  • 前端在浏览器展示数据时也需要使用安全的API展示数据,比如使用innerText而不是innerHtml

HtmlUtils的Api地址:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/util/HtmlUtils.html

CSRF跨站请求伪造

CSRF跨站请求伪造是指在用户并不知情的情况下,冒充用户发起请求,在当前已经登录的web应用程序上执行恶意操作

出现原因

CSRF问题出现在HTTP接口没有防范不受信任的调用

防范CSRF

  • CSRF Token验证,利用浏览器的同源限制,在HTTP接口执行前验证页面或者Cookie中设置的Token,只有验证通过才可以继续执行请求
  • 人机交互,比如在调用网上银行转账接口时校验短信验证码

两者对比

从技术原理上来看:XSS是在正常用户请求的HTML页面中执行了黑客提供的恶意代码,CSRF是黑客直接盗用用户浏览器中的登录信息,冒充用户去执行黑客指定的操作

0 人点赞