【Web理论篇】Web应用程序安全与风险

news2024/11/17 23:31:49

目录

  • 🌲1.Web应用程序的发展历程
    • 🍂1.1 Web应用程序的常见功能
    • 🍂1.2 Web应用程序的优点
  • 🌲2.Web安全
    • 🍂2.1Web应用程序常见漏洞
    • 🍂2.2未对用户输入做过滤
    • 🍂2.3 造成这些漏洞的原因是什么呢?
    • 🍂2.4 安全边界的改变
    • 🍂2.5 最后谈谈Web安全的未来
  • 🌲3.总结

🌲1.Web应用程序的发展历程

在因特网发展的早期阶段,万维网仅由Web站点构成,这些站点基本是静态文档的信息库。随后人们发明了Web浏览器,通过它来检索和显示那些文档。如今万维网与早期的万维网已经完全不同了,Web上的大多数站点实际上是应用程序。Web应用带来了新的重大的威胁,Web应用通常需要与内部计算机系统建立连接,这些系统中保存着高度敏感的数据,并能执行强大的功能。

🍂1.1 Web应用程序的常见功能

  • shoping
  • 社交:像大家喜欢用的QQ、微信、微博、钉钉、探探、陌陌、soul等等🤭
  • 银行服务
  • 浏览器搜索
  • 拍卖
  • 博彩与投机
  • 博客
  • 邮件
  • 交互信息
    还有很多,这里就不一一列举了。

🍂1.2 Web应用程序的优点

  • HTTP协议是用于访问万维网的核心通信协议,它是轻量级的,无需连接
  • 每个Web用户都可以在计算机和其它移动设备上安装浏览器,Web界面动态部署用户界面
  • 浏览器功能强大,内容丰富,特别是这个互联网快速发展的时代
  • Web应用程序的核心技术相对简单,容易上手。

🌲2.Web安全

任何应用程序都存在漏洞,世界上没有绝对安全的系统!

🍂2.1Web应用程序常见漏洞

你也为使用SSL技术就安全了吗?那你太天真了,我们先来看看web应用程序存在哪些漏洞:

  • 不完善的身份验证措施: 由于登录机制存在缺陷,攻击者可能爆破出账号密码
  • 不完善的访问控制措施: 应用程序无法为数据和功能提供全面保护,攻击者可以查看用户保存在服务器中的敏感信息,对数据进行操作等
  • SQL注入: 由于未对用户输入的数据做校验,攻击者能够从数据库中提取任何数据,破话其逻辑结构,执行命令等
  • 跨站脚本攻击(XSS): 攻击者可以利用该漏洞攻击应用程序的其他用户、访问其信息,执行未授权操作等。XSS分为三类:反射型XSS、存储型XSS、DOM型XSS。
  • 信息泄漏 包括应用程序泄露敏感信息,攻击者利用这些敏感信息通过有缺陷的错误攻击其它程序。
  • 跨站请求伪造(CSRF): 攻击者可以诱使用户在无意中使用自己的用户权限对应用程序执行操作,恶意Web站点可以利用该漏洞,通过受害用户与应用程序进行交互,执行用户并不打算执行的操作。
    SSL可为用户浏览器和Web服务器间的传输提供机密性和完整性保护功能。它有助于防止信息泄露,并可保护用户处理的Web服务器的安全性。但SSL并不能抵御直接针对某个应用程序的服务器或客户端组件的攻击,而许多成功的攻击都恰恰属于这种类型。需要特别指出的是,SSL并不能阻止上述任何漏洞或许多其它使应用程序收到威胁的漏洞。无论是否使用SSL,大多数Web应用程序任然存在安全漏洞。
    当然不止这些。还有**ssrf、xxe外部实体注入、逻辑漏洞、文件上传、文件包含、远程代码执行漏洞、短信轰炸漏洞,框架漏洞等等。**

🍂2.2未对用户输入做过滤

Web应用程序必须解决一个根本的问题,应用程序必须假设所有输入的信息都是恶意的输入,并必须采取措施确保攻击者无法使用专门设计的输入破话应用程序,干扰其逻辑结构与行为,并最终 达到非法访问其数据和功能的目的。这个问题的核心表现在以下几个方面:

  • 用户可干预客户端与服务端之间传递的所有数据,包括请求参数cookieHTTP信息头
  • 用户可按任何顺序发送请求,并可在应用程序要求之外的不同阶段不止一次提交或根本不提交参数。用户的操作可能与开发人员对用户和应用程序交互方式做出的任何假设完全不同。
  • 用户并不限于仅使用一种Web浏览器访问应用程序。大量各种各样的工具可以协助攻击Web应用程序。
    举例:
  • 更改隐藏的HTML表单字段提交的产品价格,以更低廉的价格欺诈性购买商品。
  • 修改在HTTP cookie中传送的会话令牌,劫持另一个验证用户的会话。
  • 利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。
  • 改变由后端数据库处理的,某个输入,从而注入一个恶意数据库查询以访问敏感数据,也就是sql注入漏洞。
    毋庸置疑,SSL无法阻止攻击者向服务器提交专门设计的输入。应用程序使用SSL仅仅表示网络上其他用户无法查看或修改攻击者传送的数据。因为攻击者控制着SSL通道的终端,能够通过这条通道向服务器传送任何内容。如果前面提到的任何攻击实现,那么不论其在FAQ中声称其安全如何,应用程序都很容易收到攻击。

🍂2.3 造成这些漏洞的原因是什么呢?

Web应用程序存在如此多安全问题的因素主要有以下几个方面:

  • 安全意识不够成熟: 近年来,人们对Web应用程序安全问题的意识有所增强,特别是浙江这块,时不时就来一场互网行动,但与网络和操作系统这些更加完善的领域相比,人们对Web应用程序安全问题的意识还不够成熟。
  • 独立开发: 大多数Web应用程序都是由企业自己的员工或合作公司独立开发。即使应用程序使用第三方组件,通常也是使用新代码将第三方组件进行自定义或拼凑在一起。这种情况下,每个应用程序都不同,并且可能包含其独有的缺陷。
  • 程序员偷懒: 一个新手程序员可能短期内从头开始创建一个强大的应用程序。但是,在编写功能性代码与安全性代码之间存在巨大差异。他们可能缺乏发现安全问题的知识和经验。特别是很多框架拿来就用,一旦发现漏洞,则会影响很多无关的应用程序。
  • 迅速发展的威胁形势: Web应用程序攻击与防御研究发展相对不成熟,是一个正蓬勃发展的领域,人才缺口比较大,新概念与威胁出现的速度比传统的技术要快得多,应用程序部署后会面临许多未知的威胁。
  • 资源与时间限制: 由于独立、一次性开发的影响,许多Web应用程序开发会受到严格的时间与资源限制。小型组织通常不愿意多花时日评估一个新的应用程序。快速渗透通常只能发现明显的安全问题,而往往会遗漏比较细微、需要时间和耐心来发现的漏洞。
  • 技术瓶颈: 开发人员沿用原有的技术来满足新的需求,这种做法造成的安全漏洞与无法预料的负面影响也就不足为奇了。
  • 对功能的需求不断增强: 但我们都知道,功能越多,与数据库的交互就越多,可能存在的漏洞越多,如果安全防护没有做到位,则很容易被攻击。

🍂2.4 安全边界的改变

在Web应用程序出现之前,主要在网络边界上抵御外部攻击。保护这个边界需要对其提供的服务进行强化、打补丁,并在用户访问之前设置防火墙。
Web应用程序的出现改变了这一切,用户要访问应用程序,边界防火墙必须允许其通过 HTTP/HTTPS连接内部服务器;应用程序要实现其功能,必须允许其连接服务器以支持后端系统,如数据库大型主机以及金融与后勤系统。这些系统通常处于组织运营的核心部分,并由几层网络级防御保护。
人们普遍采用电子邮件作为一种补充验证机制,安全边界一定程度上向客户端转移。当前,大量应用程序都包含“忘记密码”功能,攻击者可以利用该功能向任何注册地址发送账户恢复电子邮件,而无需任何其他用户特定的信息。因此,如果攻击者攻破了用户的Web邮件账户,就可以轻松扩大攻击范围,并攻破受害用户注册的大多数Web应用程序账户。

🍂2.5 最后谈谈Web安全的未来

经过历史长河的洗礼,目前因特网上的Web应用程序任然充满漏洞。在了解Web应用程序面临的安全威胁以及如何有效应对这些威胁之前,整个行业仍未形成成熟的认知。目前几乎没有迹象表明上述问题能够在不远的将来得到解决。
Web应用程序安全的另一个突出趋势为:攻击目标已由传统的服务器端应用程序转向用户端应用程序。后一类攻击仍然需要利用应用程序本身的缺陷,但这类攻击一般要与与其他用户进行某种形式的交互,以达到破坏用户与易受攻击的应用程序之间交易的目的。其他软件安全领域也同样存在这种趋势。
技术领域的各种最新趋势在一定程度上改变了Web应用程序的安全状态。像云计算。这一术语指更多地通过外部服务提供商来实施技术栈的各个部分,包括应用程序软件、应用程序平台、Web服务器软件、数据库和硬件。它也指在托管环境中大量采用虚拟化技术。和技术领域的大多数变革一样,这些趋势也催生了一些新型攻击,并导致现有攻击产生变体。虽然这些趋势受到人们的大肆追捧,但鉴于其导致的各种问题,它们并不像人们最初认为的那样会带来颠覆性的改变。
尽管Web应用程序发生了所有这些改变,一些典型漏洞并未表现出任何减少的迹象。它们继续出现,方式与Web技术发展初期大致相问。这些漏洞包括业务逻辑缺陷、未授权访问控制以及其他设计问题。即便在应用程序组什系出果从风一切皆服务”的时代,这些问题仍然会广泛存在。

🌲3.总结

总而言之,多数应用程序都面临一个 核心安全问题,即用户可提交任意输人。用户与应用程序交互的每一个方面都可能是恶意的,而且在未能证明其并无恶意之前应该被认定为是恶意的。如果这个问题处理不当,应用程序就有可能受到各种形式的攻击。当前Web应用程序安全状况的所有证据表明,这个问题尚未得到很好的解决,而且不管是对部署Web应用程序的组织还是对访问它们的用户而言,针对Web应用程序的攻击都是一个严重的威胁。

注:本文部分内容来自《黑客攻防技术宝典》

   曾经刻骨铭心的往事早已风轻云淡,就像黄昏的钟声嘎然而止,来不及叹息,也无须叹息。

                                                                         ———— 花城的包包
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/409685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【实战分享】js生成word(docx),以及将word转成pdf解决方案分享

本文将记录如何用js生成word文件,并在node服务器端将word转换成pdf。记录的代码均是在真实业务场景中使用成功的代码,没有记录中间踩坑的过程。想直接抄答案的家人们可以跳转到1.2 程序编写部分,最终效果图可在1.2 程序编写部分中4. 效果展示…

【解决前端报错】Bad Request: Required request parameter ‘id‘ for method parameter type Long is not present

后端查询列表接口返回的对象里包含Long id,前端获取到这个id,执行通过Long id删除操作。这时删除操作报错400,大意是没找着Long类型的id. swagger相关接口截图: Long类型的在swagger显示是integer64 , integer是integer32. 这是前端请求后…

微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!

前言 网上的教程都是让你写页面 “引导” 右上角三个点里,让用户自己去浏览器打开,其实这样用户体验并不好。 本文实现了 最新微信公众号 H5 网页(微信内置浏览器中),预览下载 office 文件,安卓和苹果全都支持! 您可以直接复制代码,移植到自己项目中去,任何前端项目(…

全网超详细的【Axure】Axure RP 9的下载、安装、中文字体、授权

文章目录1. 文章引言2. 下载Axure93. 安装Axure94. Axure9中文5. Axure9授权1. 文章引言 最近在学习原型图,针对画原型图的工具,反复对比墨刀、Axure、xiaopiu后,最终选择了Axure。 接下来,我便从Axure RP 9的下载、安装、中文字…

VUE实现微信扫码登录

获取access_token时序图&#xff1a; public中index.html引入 <script src"https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> 微信登录操作 new WxLogin({// 以下操作把请求到的二维码嵌入到id为"weixin"的标签中i…

走进Vue【三】vue-router详解

目录&#x1f31f;前言&#x1f31f;路由&#x1f31f;什么是前端路由&#xff1f;&#x1f31f;前端路由优点缺点&#x1f31f;vue-router&#x1f31f;安装&#x1f31f;路由初体验1.路由组件router-linkrouter-view2.步骤1. 定义路由组件2. 定义路由3. 创建 router 实例4. 挂…

VUE3 子传父 父传子 双向传递

组件参数传递 父传子 father.vue <template > <!-- 父传子实现 2.向vue页面中的子组件传递该属性 :传给子组件的名字&#xff08;自定义&#xff09;“对应定义在父组件的属性名” --><Header :openpagevaria"openpagevaria" ></Header&g…

使用vue-cli-plugin-electron-builder创建electron+vue项目

文章目录一、nvm环境二、安装vue-cli、yarn三、使用vue项目管理器创建项目四、使用vue项目管理器安装插件五、进入my-electron-vue目录&#xff0c;启动electron六、安装VueDevtools&#xff0c;解决Vue Devtools failed to install: Error: net::ERR_CONNECTION_TIMED_OUT——…

npm install xxxx --legacy-peer-deps命令是什么?

本文分享自华为云社区《npm install xxxx --legacy-peer-deps命令是什么&#xff1f;为什么可以解决下载时候产生的依赖冲突呢&#xff1f;》&#xff0c;作者&#xff1a; gentle_zhou 。 在日常使用命令npm install / npm install XX下载依赖的操作中&#xff0c;我经常会遇…

npm 报错“A complete log of this run can be found in:”解决方法

npm 启动项目 npm run serve/dev的时候报了个错&#xff1a;再次记录一下 ! code ELIFECYCLE npm ERR! errno 1 npm ERR! new0.1.0 serve: vue-cli-service serve npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the new0.1.0 serve script. npm ERR! This is probably n…

【CSS 文字渐变、背景渐变实现方式】

CSS 文字渐变&#xff0c;背景渐变的几种实现方式 在我们日常页面开发当中&#xff0c;使用合适的css渐变效果能让我们的界面更加美观&#xff0c;赏心悦目。 一、CSS 文字渐变&#xff1a; 首先&#xff0c;文字渐变实际上是通过背景渐变裁剪成文字的前景色&#xff0c;然后…

【微信小程序】初入微信小程序

大家好我依旧是山鱼&#x1f41f;&#xff0c;对于初入小程序的同学来说本篇依旧是你的不二选择&#xff0c;它详细的介绍了小程序及小程序&开发者工具的使用&#xff0c;大家快快学起来吧&#xff01; 目录 一&#xff0c;小程序简介 1.1 什么是微信小程序 1.2小程序与…

前端实现一个名言生成器

The sand accumulates to form a pagoda✨ 写在前面✨ JS是什么&#xff1f;✨ 名言生成器✨ 页面搭建✨ 功能实现✨ 写在前面 在上周我们通过HTML、CSS实现了一个简单的‘我的相册‘页面的搭建&#xff0c;很多伙伴呢跟我说难道前端就只能做一些页面搭建的工作吗&#xff1f;…

Vue3 京东到家项目实战第一篇(首页及登录功能开发) 进阶式掌握vue3完整知识体系

目录 项目首页开发 项目准备✌️ 样式开发&#x1f44d; 防抖&#x1f44a; 底部横条✌️ 登陆注册功能开发 样式编写 &#x1f450; 路由守卫实现基础登录校验功能☝️ 使用 axios 发送登录 Mock 请求&#x1f448; 请求函数的封装&#x1f64c; 通过代码拆分增加逻…

html基本标签

目录 1&#xff0c;标题标签h1-h6 2&#xff0c;段落标签p 3&#xff0c;换行标签br 4&#xff0c;水平线标签hr 5&#xff0c;图片标签img及路径详解(绝对/相对路径) 6&#xff0c;超文本链接标签a 7&#xff0c;超本文链接之锚点 8&#xff0c;div标签 9&#xff0c…

JS-获取网页滑动距离,并实时监听

介绍 本文主要介绍通过JS获取网页滑动距离&#xff0c;并实时监听的方法。分析document.body.scrollTop、document.documentElement.scrollTop、window.pageYOffset 三者之间的区别。 一、获取网页滑动距离 JS方法&#xff1a; console.log(网页被卷去的高&#xff1a;, doc…

05-ES6语法:解构赋值

本文我们介绍ES6中解构赋值。ES6的解构赋值语法是一种JS表达式。解构赋值语法是一种JS表达式&#xff0c;通过解构赋值&#xff0c;可以将属性/值从对象/数组中取出&#xff0c;赋值给其他变量。 下面我们具体来看看解构赋值是什么&#xff1f;以及是如何使用的&#xff1f; …

Bootstrap——制作个人简历网页、工具类【边框(添加、删除、颜色、圆角)、清除浮动、颜色(文本、链接、背景)、display属性、浮动、定位、文本对齐】

制作个人简历网页 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><meta name"viewport"content"widthdevice-width,initial-scale1,minimum-scale1,maximum-scale1,u…

移动端H5网页开发必备知识

简介 工欲善其事必先利其器&#xff0c;今天这篇文章主要讲解移动端H5开发必备的一些基础知识以及移动端适配和布局方案。如果已经看过这篇文章了或者已经掌握了移动端基础的话可以看笔者写的 移动端H5网页开发常见问题汇总 移动端开发必备知识-Hybrid App 像素 像素即一个…

在Vue中获取DOM元素的实际宽高

最近使用 D3.js 开发可视化图表&#xff0c;因为移动端做了 rem 适配&#xff0c;所以需要动态计算获取图表容器的宽高&#xff0c;其中涉及到一些原生DOM API的使用&#xff0c;避免遗忘这里总结一下。 一、获取元素 在 Vue 中可以使用 ref 来获取一个真实的 DOM 元素。 为了…