从后端角度看安全

news2025/1/16 2:47:18

跨站脚本攻击(XSS)

什么是XSS

跨站脚本工具,全程是Cross Site Script,为了和CSS 区分,所以叫XSS。
XSS 攻击,通常指黑客通过HTML注入,来纂改了网页,插入恶意脚本。
人话就是把用户的数据当成了html代码的一部分来运行了
在线练习

反射型XSS
反射型XSS又称非持久型XSS,只是简单把用户输入的数据反射给浏览器

存储型XSS
存储型XSS又称持久型XSS

为什么注入了就能运行

url?name=<script>alert(1)</script>

<h2 align="center">欢迎用户:{{name}}</h2>

在jsp或者asp这类后端渲染的会出现xss
因为 后端会把值直接渲染,返回给浏览器

<h2 align="center">欢迎用户:<script>alert(1)</script></h2>

为什么现在vue或者现代化的前端框架中xss会很困难?

<h2 align="center">欢迎用户:{{name}}</h2>

在vue中插值相当于v-text也就是js中的outerText,只会当成文本处理

危害

你就 想象一下你的网站,别人在里面添加js代码,是不是内裤都给看穿了

  • 代理转发流经被攻击者的所有 Web 流量,即实施中间人攻击。
  • 窃取或篡改应用 cookie 用于会话劫持。
  • 钓鱼

危害很多只简单列几个

防御

1.输入检查
过滤<>等特殊字符,但是可能会改变程序的语义。

2.输出检查
使用安全的编码函数
html ->HemlEncode
javascript ->JavascriptEncode

3.使用现代化的前端框架
4.设置Http only
这样通过js脚本将无法读取到cookie信息,这样能有效的防止关于会话的XSS攻击。

CSRF

跨站点请求伪造(Cross Site Request Forgery)

什么是CSRF

我现在写了一个页面,页面里的逻辑是 请求B站注销账户,然后我把链接发给了你,你点开后,如果你最近登录了B站,那么你的账号就被注销了,这就是跨站点请求伪造

危害

CSRF一般都是产生写数据操作的url,因为CSRF过程中,攻击者是无法获得返回的数据的,所以读的操作对他没有意义。
危害显而易见,直接内库被看穿!
顺便说一下SSRF

预防

  • token
    因为token 不会被自动提交,前端在登录成功后在本地缓存token,然后在请求时在请求头中带上token,
    所以CSRF时并不会自动带上token

SSRF

服务端请求伪造(Server Site Request Forgery)

什么是SSRF

当我们服务端提供了从其它服务器应用获取数据的时候,坏银恶意使用该接口来代理攻击

危害

坏银使用恶意的url来访问本来访问不到的内网服务
例如:
公司的一个老接口,现在已被弃用!

    @ApiOperation(value = "图片-下载代理,解决跨越问题")
    @RequestMapping(path = "/download", method = RequestMethod.GET)
    public ResponseEntity<Resource> download(@RequestParam(value = "url") String url) throws IOException {
         String fileName = url.substring(url.lastIndexOf("/") + 1);
        byte[] bytes = IOUtils.toByteArray(new URL(url));
        ByteArrayResource resource = new ByteArrayResource(bytes);

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Disposition", String.format("attachment;filename=\"%s", fileName));
        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(bytes.length)
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(resource);
    }

当我本地启动了一个服务时,使用postman请求
请添加图片描述
请添加图片描述
直接内裤被打穿!!

预防

  • 内网开启鉴权
  • 过滤内网服务ip
  • 只允许http和https协议访问

SQL注入

对于后端来说SQL 注入可以说非常熟悉了。

盲注

服务端关闭异常显示,攻击者通过注入条件语句来验证是否存在sql注入漏洞
荔枝:

http://path.com/item?id=1
后端sql: select * from user where id= 1

注入:

http://path.com/item?id=1 and 1=1
http://path.com/item?id=1 and 1=2

通过验证上述sql注入返回结果,来判断是否存在sql注入
(定时攻击)Timing Attack
有时 id 是比较复杂的如uuid,这时你就不能通过上面的梨子来盲注了

在mysql 中 BENCHMARK(count,expr) 用来测试函数执行count次,来查看耗时
因此 通过注入BENCHMARK来判断耗时是否有增加来判断是否存在SQL注入

预防

1.预编译
2.存储过程
存储过程中尽量不要使用动态SQL
3.检查数据类型

在使用数据库时应该严格 遵守最小权限原则。

XML注入

与HTML注入相似,解决方案也是类似,对用户输入中的保留字符进行转义即可

文件上传漏洞

什么是文件上传漏洞

文件上传漏洞是指用户上传了一个可执行的脚本文件。
触发条件:

  • 上传的文件能被web容器解析
  • 用户能访问到该文件

如果文件上传了,不能被用户访问到或者不能被web解析,那就说明这个这个脚本不会运行,所以就不算漏洞!!

预防

  1. 文件上传的目录设置为不可执行
    在实际业务中文件都放到了独立的存储系统中如OSS,一方面降低的系统的性能的损耗,也杜绝的执行漏洞

  2. 判断文件类型,结合MIME Type和文件后缀等,简单的通过后缀名称来判断文件的类型,是不安全的,

  3. 上传后修改文件名称和路径
    文件上传后,黑客想要执行它,就要先能访问到它,这样可以增加攻击成本

  4. 单独设置文件服务器域名
    因为同源策略,会导致大部分攻击失效,同源策略(协议相同,端口号相同,域名相同)是指未经允许的情况下,不能够访问其他域下的内容,如果没有同源限制,那么浏览器中的cookie等其他数据可以任意读取,不同域下的DOM任意操作,ajax任意请求其他网站的数据

拒绝服务

分布式拒绝服务

什么是分布式拒绝服务

分布式拒绝服务也就是 大家所熟知的DDOS (Distributed Denial of Service),利用合理的请求,来造成服务过载从而导致服务不可用!

DDOS分为 网络层和应用层

预防

这里的预防是预防应用层的DDOS

  • 使用钞能力,与运营商合作
  • 限制请求频率
  • 修改配置
    例如nginx 限制每秒请求数等
  • 性能优化
    • 将数据库压力转移到内存中,及时的释放资源
    • 负载均衡
    • CDN
  • 验证码
    虽然验证码,很影响体验,不过能有效的解决自动重放行为

正则攻击

MD正则写的不好,也会造成资源耗尽,从而拒绝服务。
正则的原理是基于NFA,就是个状态机,有缺陷的正则会消化大量的资源。

我是谁:没有绝对安全的系统

参考:
白帽子讲WEB安全

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

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

相关文章

OTG 配置为U盘

目录 硬件环境及目标 配置脚本 问题1 &#xff0c;创建g1 目录失败 问题1 的解决 问题2 &#xff0c;目录不存在 访问存储卡 综述 网上很多资料介绍通过configfs将OTG 口配置为U盘的资料&#xff0c;本文记录实际操作及遇到的问题。 硬件环境及目标 硬件基本结构如下图。 …

打造高逼格、可视化的监控系统平台

1、安装influxdb数据库 docker run -d --name influxdb -p 8083:8083 -p 8086:8086 tutum/influxdb 两个端口都要映射出来&#xff0c;同时要开启防火墙端口 web http://192.168.199.151:8083/进入8083端口&#xff0c;创建数据库cadvisor 创建管理员admin密码123456的用户…

windows glog 安装以及环境搭建

ocr 代码是用 C 写得&#xff0c;以前只有一个同事在维护&#xff0c;他离职几年了&#xff0c;那块代码没人能改得了。工作后一直在写 Java &#xff0c;写了快 10 年 Java 了。看了几天 C 代码&#xff0c;终于能在 vs 下把代码给跑起来了。 写 Java 代码是在 mac 平台下 In…

uniapp 切换WIFI

最近有一个新的需求&#xff0c;在app中实现切换wifi的功能。 方法一、 实现&#xff1a;使用安卓9&#xff08;28&#xff09;方法的WifiManager.addNetwork切换&#xff0c;具体实现方法大家自己搜&#xff0c;很容易搜到。 弊端&#xff1a; 要先忘记 WI-FI 才能连接成功&…

竞品分析:秒健康

发展历程 妙健康产品上线后&#xff0c;最初主要提供相关的在线医疗服务健康管理社区互动&#xff0c;虽然也有瘦身等相关功能&#xff0c;但整体业务偏向医疗化&#xff0c;用户年龄层也相对偏高。 15年进入健康市场后&#xff0c;不断探索并完善有关医疗业务的相关功能&am…

FBA海运是什么,FBA海运的优势是什么

FBA的方式分为海运&#xff0c;空运&#xff0c;快递这种&#xff0c;其中海运是各种方式中性价比最高的一种&#xff0c;不仅价格便宜&#xff0c;而且运货量大&#xff0c;清关简单&#xff0c;虽然时效有点慢&#xff0c;但是量大可以补救&#xff0c;我们在这里主要说一说F…

java设计模式

设计模式汇总(copy) 介绍 内容链接设计模式简介https://blog.csdn.net/m0_54485604/article/details/113309133 UML 类图介绍 内容链接UML类图https://blog.csdn.net/m0_54485604/article/details/113243818 六大设计原则 内容链接开闭原则https://blog.csdn.net/m0_54485604/a…

Spring:AOP的核心概念(10)

AOP核心概念AOP简介什么是AOPAOP作用AOP核心概念AOP入门案例AOP工作流程流程1: Spring容器启动流程2: 读取所有切面配置中的切入点流程3: 初始化bean流程4: 获取bean执行方法AOP核心概念AOP小结AOP简介 什么是AOP AOP(Aspect Oriented Programming)面向切面编程&#xff0c;一…

SSD 1306显示屏 adafruit SSD 1306

文章目录1.常用函数1.字体oled.printoled.setRotation(1);oled.setTextSize(1);oled.setCursor(35, 5);2.图形类oled.fillScreen(WHITE );//coloroled.fillRect(10, 10, 20, 20, WHITE );//x y x1 y1 coloroled.drawRect(10, 10, 40,40, WHITE );//x y x1 y1 coloroled.drawCir…

数字信号处理-3-函数的正交

0 导读 如果函数成正交关系&#xff0c;那么它们的积的定积分为 0。反过来说就是&#xff0c;如果两个函数相乘的定积分值为 0&#xff0c;那么称这两个函数正交。sinx 与 cosx 正交&#xff0c;sinnx 与 sinmx 正交&#xff08;m与n不相等&#xff09;&#xff0c;cosnx 与 c…

留学文书Statement of Purpose写法介绍

留学目的陈述&#xff08;Statement of Purpose, 通常简写为SOP&#xff09;是留学申请文书里的重要内容之一。通过SOP&#xff0c;目标学校可以更深入地了解申请人的留学目的以及申请人的目标是否和学校的教学理念相一致。因此&#xff0c;在撰写SOP的时候&#xff0c;申请者要…

开播客户端

OBS架构 配置数据&#xff1a;json表示 libobs接口导出&#xff1a;export、import 多线程中的缓冲队列&#xff1a;circlebuf动态循环缓冲 分层 UI > libobs > 插件 libobs C实现的&#xff0c;拥有一个全局变量控制所有事务。 视频采集渲染线程、视频编码线程&…

基于PHP+MYSQL的网上鲜花店销售系统(含论文)

鲜花在人们的生活中是一个非常重要的东西,在节假日或者一些有特殊含义的日子里人们通常会给亲朋好友或者长辈们送上一束有特殊含义的鲜花来表示自己对节日的问候,为了给人们增加鲜花的选择性和降低购买的难度我们开发了本网上鲜花店销售系统 本网上鲜花店销售系统是通过当下最流…

CorelDRAW2023安装下载教程精简版矢量绘图软件

CDR全称是CorelRAW2023&#xff0c;它不同于Photoshop&#xff0c;PS是一款图片处理软件&#xff0c;而CDR是一款较为常用的矢量绘图设计软件&#xff0c;该软件给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能&#xff0c;使用的比较多的版本是202…

【读点论文】CMT: Convolutional Neural Networks Meet Vision Transformers

CMT: Convolutional Neural Networks Meet Vision Transformers Abstract 视觉transformer已经成功地应用于图像识别任务&#xff0c;因为它们能够捕获图像中的长距离依赖性。然而&#xff0c;transformer和现有卷积神经网络&#xff08;CNN&#xff09;在性能和计算成本方面仍…

Pandas太慢?快使用Vaex DataFrame,每秒数亿数据算起来 ⛵

&#x1f4a6; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; 数据分析实战系列&#xff1a;https://www.showmeai.tech/tutorials/40 &#x1f4d8; 本文地址&#xff1a;https://www.showmeai.tech/article-detail/393 &#x1f4e2; 声明&#xff1a;版权所有&#xff0c;转…

LR低代码快速开发平台 高效调整企业组织架构

组织架构以及围绕组织架构的设计、实施和变革&#xff0c;是企业管理永恒的话题&#xff0c;它上承公司的业务战略和运营模式&#xff0c;下接业务流程和信息系统建设&#xff0c;重要性不言而喻。数字化变革浪潮之下&#xff0c;商业模式的颠覆、价值链的重塑都需要由相匹配的…

解读商业智能BI,数据仓库中的元数据

之前的文章讨论过数据分析、数据治理、数据仓库等等&#xff0c;即使是非业内人员从字面意思&#xff0c;也是可以了解一二的&#xff0c;但是&#xff0c;很多人对于元数据可能就比较陌生了。那么&#xff0c;今天我们就来聊一聊元数据管理。 一、数据仓库 要说元数据&#…

IB 物理真题: 比潜热、理想气体

本题是 2017 年 IB 物理试卷 paper 2 的一道大题&#xff0c;在 SL 和 HL 的试卷中&#xff0c;这道题基本没什么区别&#xff0c;所以适用于所有考 IB 物理的学生。这道题主要涉及到了功率、比潜热、和理想气体的知识&#xff0c;具体讲了液氧蒸发成氧气的过程。如下图所示&am…

简述CompletableFuture异步任务编排

前言 在之前的项目开发中&#xff0c;都没怎么使用过CompletableFuture的功能&#xff0c;只听说过和异步编程有关。为了能够在将来有需要的时候用得上&#xff0c;这两天花了点时间学习了一下&#xff0c;并简单地总结一下如何使用CompletableFuture完成异步任务编排。 先创…