网络安全 -- 常见的攻击方式和防守
网络安全 – 常见的攻击方式和防守
一 . 网页中出现黑链
特点: 隐藏,不易发现,字体大小是0,表面上看不出来,代码层面可以查出来,也可能极限偏移,颜色一致
表现: 多表现为非法植入链接,一般点击会跳转至其他网页
例如:
1.澳门新葡京等赌博网站,获取流量,有人甚至会充钱参与赌博,背后有其完善的产业链
2.网贷页面,一般缺钱,着急用钱的人可能会上当受骗
3.色情网站,充会员看视频,直播,下载视频
4.盗版电影网站,充会员可以看视频,选择清晰度,甚至下载视频
5.纯广告,一般用于网盘/私服/游戏/客户端等,其中下载客户端可能包含木马等病毒
6.区块链,可以利用你的机器进行挖矿,消耗你的CPU和GPU
挖矿原理:挖矿也就是解密的过程,每种货币的加密方式不一样,用芯片的能力,不断进行哈希碰撞,赢取记账权,从而获得奖励的比特币(一旦中病毒,会导致CPU 100%)
** 挖矿 **
挖矿:在比特币世界里,“矿”是比特币,所以“挖矿”是指挖比特币,“矿工”是指运用挖矿设备(比特币矿机)参与挖比特币的人挖矿就是利用芯片进行一个与随机数相关的计算,得出答案后以此换取一个虚拟币。虚拟币则可以通过某种途经换取各个国家的货币。运算能力越强的芯片就能越快找到这个随机答案,理论上单位时间内能产出越多的虚拟币。由于关系到随机数,只有恰巧找到答案才能获取奖励。有可能一块芯片下一秒就找到答案,也有可能十块芯片一个星期都没找到答案。越多芯片同时计算就越容易找到答案,内置多芯片的矿机就出现了。而多台矿机组成一个“矿场”同时挖矿更是提高效率。而矿池则是由多个“个体户”加入一个组织一起挖矿,无论谁找到答案挖出虚拟币,所有人同时按贡献的计算能力获得相应的报酬,这种方式能使“个体户”收入更稳定。
二 . 网站的根目录出现大量的植入网页
1.网页长时间不维护或维护不到位
2.上传下载漏洞
3.网站流量较大,访问人数较多,可以植入黑链,广告页等
压缩炸弹:
“压缩炸弹” 就是一个高压缩比的zip文件,它本身可能只有几M或几十M的大小,但是解压缩之后会产生巨大的数据量,会解压到几十G的大小甚至更大,这种zip文件会对解压缩的系统造成严重的资源负担,影响目标系统业务甚至达到使系统崩溃的结果 。
三 . 网站网页挂木马病毒
1.私服网页登录点击,可能获取你信息,姓名,邮箱,密码,生日等,可以利用这些信息破解你的邮箱密码等等,获取其他信息的用户例如账单,客户信息,邮件等
2.通过JS的一些脚本<script>alert(“hey”)</script>盗号,挖矿,XSS,获取权限
XSS:跨站脚本攻击 (攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的)
- . 盗取cookie并利用js发送网络请求
- . 获取内网IP,可能攻击内网
- . 获取用户的登录信息
- . 劫持流量实现恶意跳转
3.虚拟货币交易所
4.下载类网站 - 电影/ISO系统镜像
XSS攻击大致上分为两类:
反射型XSS,又称非持久型XSS:
攻击相对于访问者而言是一次性的,具体表现在我们把我们的恶意脚本通过url的方式传递给了服务器,而服务器则只是不加处理的把脚本“反射”回访问者的浏览器而使访问者的浏览器执行相应的脚本。
储存型XSS,也就是持久型XSS:
它与反射型XSS最大的不同就是服务器再接收到我们的恶意脚本时会将其做一些处理。
如储存到数据库中,然后当我们再次访问相同页面时,将恶意脚本从数据库中取出并返回给浏览器执行。这就意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此储存型XSS的危害会更大。
CSRF攻击
CSRF(Cross-site request forgery)全称“跨站请求伪造”
CSRF攻击:攻击者盗用了你的身份,以你的名义进行某些非法操作。CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的账户。
CSRF攻击攻击原理及过程如下:
- 用户打开浏览器,访问受信任银行网站A,输入用户名和密码请求登录网站;
2.在用户信息通过验证后,网站产生Cookie信息并返回给浏览器,此时用户登录网站成功,可以正常发送请求到网站; - 用户未退出银行网站之前,在同一浏览器中,打开一个TAB页访问其他网站B;
- 这时候网站B 已被黑客注入诱导信息,假如是一张图片,图片地址指向黑客构造的恶意url,该url能完成黑客想干的某件事,比如修改用户的密码;
- 多数情况下,浏览器接收到这个url 请求会失败,因为它要求用户的认证信息。但是,如果用户还未退出网站A,或者当时恰巧刚访问网站A不久,他的浏览器与网站A之间的session 尚未过期,浏览器的cookie 之中含有用户的认证信息。这时,悲剧发生了,这个url 请求就会得到响应,黑客就能以用户的权限修改密码,且用户毫不知情。
CSRF特点:
➢ 攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。
➢ 攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。
➢ 整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。
➢ 跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。
CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。
四 . 蠕虫病毒
1.服务器运行缓慢,可能被植入了蠕虫病毒等
蠕虫病毒是一种常见的计算机病毒,是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据和恶意篡改系统.影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
- 打开网页异常缓慢,可能下载的软件不是从官方下载的
- 后台监控 (cpu占用率高,挖矿,炸弹,进程等)
- 定时任务(周期任务定期检查是否还活着,也就是一个脚本,检查进程是否还活着)
- 挖矿脚本
- 网站漏洞 - 肉鸡(肉鸡也称傀儡机,是指可以被黑客远程控制的机器,肉鸡通常被用作DDOS攻击可以是各种系统,如windows、linux、unix等,更可以是一家公司、企业、学校甚至是政府军队的服务器。)
原理
根据蠕虫病毒的程序其工作流程可以分为漏洞扫描、攻击、传染、现场处理四个阶段,首先蠕虫程序随机(或在某种倾向性策略下)选取某一段IP地址,接着对这一地址段的主机扫描,当扫描到有漏洞的计算机系统后,将蠕虫主体迁移到目标主机。然后,蠕虫程序进入被感染的系统,对目标主机进行现场处理。同时,蠕虫程序生成多个副本,重复上述流程。各个步骤的繁简程度也不同,有的十分复杂,有的则非常简单。
传播途径 :
1、利用漏洞
这种方式是网络蠕虫最主要的破坏方式,也是网络蠕虫的一个最显著的特点。网络蠕虫攻击时,首先探测目标计算机存在的漏洞,然后根据探测到的漏洞建立传播路径,最后实施攻击。
2、依赖Email传播
以电子邮件附件的形式进行传播是网络蠕虫采用的主要传播方式,蠕虫编写者通过向用户发送电子邮件,用户在点击电子邮件附件时,网络蠕虫就会感染此计算机。
3、依赖网络共享
网络共享是网络蠕虫传播的重要途径之一,网络蠕虫利用共享网络资源进行传播。
4、弱密码攻击
若用户的密码很容易猜测,网络蠕虫则会在攻克了用户密码后进入计算机并获得其控制权。所以用户应该设置复杂的密码,增加破解难度。
五 . 网站域名DNS劫持
在上网过程中都有遇到过网页莫名跳转这些情况,打开的目标网站不是原来的内容,反而跳转到了未知的页面,即使终端用户输入正确的网址也会被指向跳转至那些恶意网站,或者本来能正常访问的页面,突然就打不开了,这就是DNS劫持,亦可称域名劫持。正常网站会无法打开,甚至你访问A网站的地址,打开的却是B网站的页面。如果黑客利用DNS劫持,即便访问的是正确的网银或购物网站网址,也会进入假冒的钓鱼网站。最后的结果就是您的重要信息泄露。对域名持有者而言,遭遇DNS劫持也是件非常严重的问题。它会导致持有者失去对域名的控制,站点无法被用户访问,使域名积累的流量被引导至恶意IP上,给域名持有者造成严重的经济损失,甚至可能由于恶意IP的违法经营,为域名持有者带来不必要的法律风险
六 . 网站数据库被植入内容
- 是数据库SQL注入- 数据库锁表,锁库,交钱解锁 (银行/学校/政府等)SQL注入会造成以下严重后果:1. 盗取用户数据和隐私,这些数据被打包贩卖,或用于非法目的后,轻则损害企业品牌形象,重则将面临法律法规风险。2. 攻击者可对目标数据库进行“增删改查”,一旦攻击者删库,企业整个业务将陷于瘫痪,极难恢复。3. 植入网页木马程序,对网页进行篡改,发布一些违法犯罪信息。4. 攻击者添加管理员帐号。即便漏洞被修复,如果企业未及时察觉账号被添加,则攻击者可通过管理员帐号,进入网站后台。
** SQL注入原理:**
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。
基于此,SQL注入的产生原因通常表现在以下几方面:
①不当的类型处理;
②不安全的数据库配置;
③不合理的查询集处理;
④不当的错误处理;
⑤转义字符处理不合适;
⑥多个提交处理不当。
七 . DDos攻击
DDos全称是分布式拒绝服务攻击(Distributed(分布式) Denial of Service停止服务),属于是最没技术含量但攻击起来最让人头疼的一种。攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这是 Dos 攻击。而DDos 攻击是攻击者使用多台计算机或者计算机集群进行
Dos 攻击说简单点,就是一个人去饭店吃饭,点了99999999999+个菜,然后这个人跑了,厨师还在忙活着,结果厨师累死了。
- 常见的是游戏行业攻击,不同厂商之间DDos
- 网页打不开 (下载服务器,登录服务器)
- 麻将博彩类,政务民生类
- 恶性竞争 商业互怼
- 金融领域可以说是DDoS攻击的高发行业,资金充裕的金融部门更容易受到攻击,攻击会使金融系统无法访问。黑客一般是为了赎金和敲诈勒索,容易给企业造成声誉影响和经济损失。
八 . 非法桥页,网站打开后跳转到指定页面
- 网站中植入的有JS相关恶意代码,强制跳转,例如301重定向- 目的在于黑客进行一些非法广告性或网站权重转移而从中获益。被攻击的对象往往是一些有权重、有流量的网站
网络安全 – 常见的防守
黑链防御
- “查看源代码”,看下是否有不是我们自己添加的陌生外链
- 利用“网站死链检测”或友链检测站长工具
- 服务器FTP密码不得过于简单,网站增加验证码等
- 选择稳定、安全的服务器
XSS防御
➢ 对插入的文本进行 HTML 编码,转义,对敏感字符转义,把 > 字符转为 ‘>’ < 转为‘<’ 。
➢ 给关键的Cookie设置HttpOnly属性,这样能够避免js读取Cookie信息。
➢ 除了富文本输出之外,在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击。
➢ 不要信任用户输入的内容,对表单内容需要进行特殊字符过滤校验或转义
➢ 内容安全策略(Content Security Policy),白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,大大增强了网页的安全性。一种是通过 HTTP 头信息的 Content-Security-Policy 的字段。另一种是通过网页的 标签。<meta http-equiv="Content-Security-Policy" >
CSRF防御
➢ 检验HTTP Referer来源。在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。
➢ 在请求地址中添加 token 并验证。
➢ 在 HTTP 头中自定义属性并验证。例如请求加上csrftoken,把token值放入其中
➢ 设置验证码。在发送请求前先需要输入基于服务端判断的验证码,强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击。
➢ 尽量使用POST接口,限制GET接口。降低攻击风险。
DNS劫持防御
➢ 域名注册商和注册用邮箱设置复杂密码且经常更换。不要在多个重要注册地使用相同的用户名和密码。
➢ 定期检查域名帐户信息、域名whois信息,査看事件管理器,清理Web网点中存在的可疑文件。
➢ 加强网站的防SQL注入功能,SQL注入是利用SQL语句的特点向数据库写内容,从而获取到权限的方法。
➢ 配置Web站点文件夹及文件操作权限
➢ 在网络外围和DNS服务器上使用防火墙服务。将访问限制在那些DNS功能需要的端口/服务上。
➢ 删除运行在DNS服务器上的不必要服务
SQL注入防御
➢ 定制黑白名单:将常用请求定制为白名单,一些攻击频繁的攻击限制其为黑名单,可以通过针对攻击类型把对方ip进行封禁处理,也可也对常用ip进行加白名单。
➢ 限制查询长度和类型:由于SQL注入过程中需要构造较长的SQL语句,同时有些不常用的查询类型我们可以进行限制,凡是不符合该类请求的都归结于非法请求予以限制。
➢ 数据库用户的权限配置:根据程序要求为特定的表设置特定的权限,如:某段程序对某表只需具备select权限即可,这样即使程序存在问题,恶意用户也无法对表进行update或insert等写入操作。
➢ 限制目录权限:WEB目录应至少遵循“可写目录不可执行,可执行目录不可写”的原则,在次基础上,对各目录进行必要的权限细化。
➢不论客户端是否做过数据校验,在服务端必须要有数据校验(长度、格式、是否必填等等)
DDos防御
➢ 采用高性能的网络设备,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某种类的DDOS攻击。
➢ 尽量避免NAT(Network Address Translation)网络地址转换,转换过程中需要对网络包得校验和进行计算,因此会耗费很多CPU的时间。
➢ 充足的网络带宽保证,网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗攻击。
➢ 部署CDN,CDN指的是网站的静态内容分布到多个服务器,用户就近访问,提高速度。因此,CDN也是带宽扩容的一种方法,可以用来防御DDOS攻击。
➢ HTTP请求拦截,有恶意请求或频繁攻击的,可限制IP,拒绝访问。例如nginx配置 location / {deny 1.2.3.4; }
➢ 网站页面尽可能的减少资源的请求,部分HTTP请求可浏览器的强缓存和协商缓存。
相关文章:
网络安全 -- 常见的攻击方式和防守
网络安全 – 常见的攻击方式和防守 一 . 网页中出现黑链 特点: 隐藏,不易发现,字体大小是0,表面上看不出来,代码层面可以查出来,也可能极限偏移,颜色一致 表现: 多表现为非法植入链接,一般点击会跳转至其他网页 例如: 1.澳门新葡京等赌博网站,获取流量,有人甚至会充钱参与赌…...
Android中实现滑动的7种方法
Android中实现滑动的7种方法前置知识Android坐标系视图坐标系触控事件---MotionEvent获取坐标的方法实现滑动的7种方法layout方法offsetLeftAndRight()和offsetTopAndBottom()LayoutParamsscrollTo和scrollByScroller属性动画ViewDragHelper参考前置知识 Android坐标系 Andro…...
【hadoop】介绍
目录 介绍 版本 优势 大数据技术生态体系 介绍 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 解决 存储和分析计算Google在大数据方面的三篇论文GFS --->HDFS Map-Reduce --->MR BigTable --->HBaseHadoop创始人Doug Cutting版本 Hadoop 三大发行版本&a…...
【C语言】有关的经典题型内含数组及递归函数题型讲解(入门适用)
C语音经典题型1. 在屏幕上输出9*9乘法口诀表2. 求10 个整数中最大值3. 计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值,打印出结果4. 编写程序数一下 1到 100 的所有整数中出现多少个数字95. 能把函数处理结果的二个数据返回给主调函数6. 实现一个函数,…...
MyBatis操作数据库
目录 MyBatis 功能架构 学习MyBatis 第一个MyBatis查询 1、创建数据库和表 2、搭建MyBatis开发环境 2.1、在项目中添加MyBatis框架 2.2、配置数据库连接信息 2.3、配置MyBatis中xml的保存路径(规则) 3、添加业务代码 3.1、创建实体类 3.2、构…...
Object.keys(obj)与Object.values(obj)的用法
语法 Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有枚举属性的字符串数组 传入对象,返回属性名 1 var obj {a:123,b:345}; 2 console.log(Object.keys(obj)); //[a,b] 处理字符串,返回索…...
关于ES6新特性的总结
目录1.let & const2.解构赋值3.模板字符串4.简化对象写法5.箭头函数6.函数参数的默认值设置7.rest参数8.扩展运算符9.SymbolSymbol特点创建SymbolSymbol使用场景Symbol内置值10.迭代器11.生成器12.Promise基本使用Promise封装读取文件Promise封装ajaxPromise.prototype.the…...
13. CSS 处理
提取 Css 成单独文件CSS 文件目前被打包到 js 文件中,当 js 文件加载时,会创建一个 style 标签来生成样式,加载一个页面的时候,先 html -> js -> css,会有页面闪屏现象,用户体验不好。应该是单独的 Css 文件&…...
One-hot编码
One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。 例如: 自然状态码为:000,001,010,011,100,1…...
Java中的深克隆与浅克隆
浅克隆: 实现Cloneable接口即可实现,浅克隆只对象内部的基础数据类型(包括包装类)被克隆,引用数据类型(负责对象)会被使用引用的方式传递。 简单来说,就是浅克隆属性如果是复杂对象…...
如何使用MyBatis框架实现对数据库的增删查改?
目录:1.创建MyBatis项目以及如何配置2.MyBatis操作数据库的模式3.实现增删查改注意:在我们操作数据库之前,先要保证我们已经在数据库建好了一张表。创建MyBatis项目以及如何配置我们在创建项目的时候,引入MyBatis相关依赖配置数据…...
结构体内存大小
000、前言 要想计算结构体内存大小,就会涉及到一个结构体内存对齐的问题,而不是对其成员进行简单的加运算 (1)在写本博客之前 有位同学和我讨论了一个学校的题目,题目如下: 我借这道题目问了另外一位同…...
gerrit操作和jinkens编译合入代码
gerrit 先 查看自己的push 找到后添加reviewer 填写邮箱开头就可以出来 记得1 然后send 让人review 编译不过,gerrit上查看 1.是不是checkstyle问题 2.编译不过,去jinkens查看 先retrigger重新编译 如果发现多次编译失败 则要看下console output 查…...
网络工程师面试题(面试必看)(3)
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 前言 本系列将会提供网络工程师面试题,由多位专家整合出本系列面试题,包含上百家面试时的问题。面试必考率达到80%,本系列共86道题…...
第N次重装系统之Ubtntu
前言又一次换了服务器,由于centOS已经完成了自己的生命周期,接下来我会转去使用Ubtntu系统。当然,大部分docker命令是不会收到影响的,但是一部分安装过程可能就要重新学习了。其实这个系统也有自己的老牌包管理器apt,所…...
一个 适用 vue3 ts h5移动端 table组件
vue3-h5-table 介绍 适用于 vue3 ts 的 h5 移动端项目 table 组件 支持 左侧固定 滑动 每行点击回调 支持 指定列排序 链接 :https://github.com/duKD/vue3-h5-table 效果 props说明minTableHeight表格最小高度 可选 默认600rowNum表格显示几行 可选 默认 6he…...
Vue.js 生产打包上线实战
项目管理后台采用Vue.js 架构,开发完毕后设计到打包上传到服务器发布。 发布成功后,总结出主要要决绝两个主要问题: 1.打包前,环境设置 2.上传到服务器,直接放在Tomcat中出现跨域访问问题。 此次项目实际处理方法为…...
C语言指针的算术运算
C语言指针的算术运算 C语言中,指针是一种非常重要的数据类型。除了可以指向特定的内存地址外,指针还可以进行算术运算。指针的算术运算包括加、减、比较等操作,下面我们将详细介绍这些运算符的使用方法,并提供实际的示例。 指针…...
快速排序/快速选择算法
一.快速排序 1.基本介绍 快速排序(Quicksort〉是对冒泡排序的一种改进,都属于交换排序。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分(每次选择中轴值),中轴值左边的元素小于中轴值,中轴值右边的元素全部大于中轴值(但不要求有序)&#x…...
【数据结构初阶】单链表面试题|内含链表带环问题
目录 前言 链表面试题 1. 删除链表中等于给定值 val 的所有节点。oj链接 2.反转一个单链表。oj链接 3. 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。oj链接 4. 输入一个链表,…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
