XSS和CSRF

这篇具有很好参考价值的文章主要介绍了XSS和CSRF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

web安全策略和同源策略的意义

如果登陆了一个网站,不小心又打开另一个恶意网站,如果没有安全策略,则他可以对已登录的网站进行任意的dom操作、伪造接口请求等,因此安全策略是必要的;

 

浏览器的同源策略限制了非同源的域名之间不可以对DOM进行读写操作不可以读取非同源的cookie、indexDB、localStorge等数据与资源

XSS-跨站脚本攻击

理解

由于实际业务不可能完全不引用第三方的资源,因此需要跨域访问,而支持第三方资源引用就会容易引起XSS攻击。XSS是一种代码注入攻击,攻击者在网站注入恶意脚本,在浏览器上运行,从而盗取用户cookie等信息。

危害特点

  • 窃取cookie信息,利用CORS将cookie上传到攻击者的服务器
  • 监听用户行为,比如利用addEventListener监听用户键盘事件,获取用户输入的用户名密码等
  • 修改DOM,伪造登陆窗口,骗取用户输入的用户名和密码等信息
  • 生成悬浮广告,在页面生成悬浮广告,诱导用户点击

攻击类型

  • 存储型XSS:攻击者将恶意脚本注入到有漏洞的服务器,当浏览器访问带有恶意脚本的页面时,就会上传用户信息到恶意服务器
  • 反射型XSS:攻击者诱导用户点击一个连接,然后将带有恶意代码的请求发送到服务器服务器将恶意代码返回反射到浏览器,完成最终XSS攻击
  • 基于DOM的XSS:这个攻击方法不会涉及到服务器,是在web页面资源传输过程中或者用户使用web页面过程中 修改web页面的数据。这个劫持类型较多,例如本地软件劫持、路由器劫持

防御方法

无论是哪种攻击类型,他们的共同特点都是先将恶意脚本注入浏览器,然后将用户信息发送到恶意服务器。所以阻止XSS攻击要从防止浏览器脚本注入和阻止恶意消息的发送方面来实施。

  • 服务器对输入脚本关键字符进行过滤或转码(例如 将<script 转为 &lt;script&gt;)
  • 使用验证码,防止伪造用户提交
  • 对于不受信任的输入,限制输入长度
  • 使用HttpOnly属性标记cookie(HttpOnly属性标记的cookie只能用于请求携带,不能通过js访问)
  • 采用纯前端渲染。不使用服务器渲染,通过接口请求的方式,然后使用innerText、setAttrbute等方法设置内容与属性
  • 使用CSP安全策略。CSP的本质是建立白名单。可以指定哪些外部资源可以加载,来避免恶意第三方脚本的加载;也可以禁止向第三方域提交数据,防止信息外泄;还可以禁止执行内联脚本和未授权的脚本;还提供了上报机制,这样可以帮助我们尽快的发现有哪些XSS攻击,然后进行修复。

CRSF-跨域请求伪造攻击

理解

CRSF是指跨站请求伪造攻击,攻击者诱导用户进入第三方网站,在攻击者的网站中,利用用户的登陆状态伪造跨域请求,绕过服务器的用户验证,从服务器获取信息。

他的本质是利用同源请求会携带cookie发送到服务器,来冒充用户。

攻击类型

  • get类型:比如用户在网站中的img标签中构建一个请求,在用户点击时自动发送请求
  • post类型:比如构建一个隐藏的表单,在用户进入页面时自动提交
  • 链接类型:比如在a标签的href属性中构建一个请求,在用户点击的时候自动发送

防御方法

他的攻击特点是利用服务器的漏洞,因此主要是提升服务器的安全性文章来源地址https://www.toymoban.com/news/detail-646944.html

  • 利用cookie的SameSite属性Strict-完全禁止第三方cookie;Lax-对于get链接的形式可以携带;None-没有任何限制
  • 验证请求的来源站点。服务器根据http请求头中的origin或referer判断是否为运行的站点,如果这两个值都不存在,则直接拒绝该请求。(缺点是有些情况referer也可以被伪造)
  • 使用CSRF Token验证。浏览器向服务器发起请求时,服务器生成一个随机的CSRF Token,当浏览器再次发送请求时携带此Token,服务器会根据这个token进行验证。(缺点是流程繁琐,每个请求都要携带Token;其次如果服务器搭载了负载均衡,如果请求被分配到其他服务器,这个服务器session中没有缓存这个token,也无法完成验证)
  • 对cookie进行双重验证。浏览器访问页面时,服务器向请求域名中注入一个随机字符串cookie,当用户再次访问时,获取cookie中的字符串并拼接到URL中,服务器根据参数中的字符串和cookie中的字符串进行对比,完成验证。(优点:比上述两种实现都为简单方便;缺点:如果同时遭遇了XSS攻击,则也将失效)

到了这里,关于XSS和CSRF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浏览器基础原理-安全: 跨站脚本攻击(XSS)

    XSS 跨站脚本 (Cross Site Scripting): 概念: XSS 攻击是指黑客往 HTML 文件中或者 DOM 中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。 实现方式: 起初,这种攻击通过跨域来实现的,所以叫“跨域脚本”。但是发展到现在,往 HTML 文件中注入恶

    2024年02月11日
    浏览(26)
  • XSS攻击:利用Beef劫持被攻击者客户端浏览器

    实验目的:了解什么是XSS;了解XSS攻击实施,理解防御XSS攻击的方法 系统环境:Kali Linux 2、Windows Server 网络环境:交换网络结构 实验工具: Beef;AWVS(Acunetix Web Vulnarability Scanner) 实验步骤: 实验环境搭建。 角色:留言簿网站。存在XSS漏洞;(IIS或Apache、guestbook搭建) 攻击者

    2024年02月03日
    浏览(38)
  • 前端---需要了解浏览器相关知识--浏览器请求服务器资源---缓存

    掘金1:浏览器缓存 掘金2 :浏览器缓存 跟别人怎么讲,从大的说:缓存的原理是什么? 再说什么是浏览器缓存? 浏览器缓存 请求(静态资源 | 动态资源) 一、缓存是什么? 二、为什么? 浏览器是如何判断是否使用缓存的??第一次请求网页 第二次请求相同网页: 三、怎

    2024年02月12日
    浏览(40)
  • 前端高级面试题-浏览器

    1 事件机制 事件触发三阶段 document 往事件触发处传播,遇到注册的捕获事件会触发 传播到事件触发处时触发注册的事件 从事件触发处往 document 传播,遇到注册的冒泡事件会触发 注册事件 通常我们使⽤ addEventListener 注册事件,该函数的第三个参数可以是布尔值,也可以是对

    2024年02月15日
    浏览(37)
  • 【前端】浏览器的渲染流程(完整)

    本文主要包含以下内容: 浏览器渲染整体流程 解析 HTML 样式计算 布局 分层 生成绘制指令 分块 光栅化 绘制 常见面试题 浏览器,作为用户浏览网页最基本的一个入口,我们似乎认为在地址栏输入 URL 后网页自动就出来了。殊不知在用户输入网页地址,敲下回车的那一刻,浏

    2024年02月04日
    浏览(39)
  • 前端秘法进阶篇----这还是我们熟悉的浏览器吗?(浏览器的渲染原理)

    目录 一.浏览器渲染原理 二.渲染时间点 三.渲染流水线 1.解析html(Parse HTML) 1.1解析成DOM树(document object model) 1.2解析成CSSOM树(css object model) 2.样式计算(Recalculate Style) 3.布局(Layout) 4.分层(Layer) 5. 绘制(Paint) 6.分块(Tiling) 7. 光栅化(Raster) 8. 画(Draw) 四.附加面试题 1.什么是 reflow? 2.什

    2024年02月21日
    浏览(33)
  • 前端实现浏览器自定义滚动条

    最近有个项目,产品觉得浏览器默认滚动条太丑了。想美化一下,比如自定义颜色,加上圆角,宽高都要更改一下。我查了资料和文档总结了一下 写法,特此记录以便之后使用。 scrollbar-width scrollbar-width 属性允许开发者在元素显示滚动条时设置滚动条的最大宽度。 语法: 取值

    2024年04月10日
    浏览(34)
  • 前端性能优化之浏览器渲染优化

    在当今互联网高速发展的时代,用户对于网页加载速度和性能的要求越来越高。作为前端开发者,我们需要关注并致力于提升网页的加载和渲染性能,以提供更好的用户体验。而浏览器渲染优化正是我们实现这个目标的关键。在本文中,我们将探讨一些关于浏览器渲染优化的

    2024年02月11日
    浏览(28)
  • 前端进阶之———浏览器调试巧技

            有幸的参加了一次腾讯的面试,被面试官问到了JS能不能在浏览器上import依赖已经遇到一个错误函数应该怎么解决。之前的经验是做一些简单的html,css样式调试以及他的报错信息,忽略了浏览器js调试的强大功能。觉得还是非常有必要的,很好的帮助我们以解决后

    2024年02月10日
    浏览(38)
  • 解决前端浏览器兼容性问题

    解决前端浏览器兼容性问题时前端开发中的一项重要任务。以下是一些常用的方法来解决这类问题: 1、使用css前缀: 不同浏览器可能对某些CSS属性有不同的前缀要求。可以使用CSS前缀来覆盖不同浏览器的样式需求。例如,使用 -webkit 前缀来适配WebKit(Chrome、Safari)浏览器

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包