「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

2024-01-21

1 什么是 CSRF

面试的时候的著名问题:“谈一谈你对 CSRF 与 SSRF 区别的看法”

这个问题,如果我们用非常通俗的语言讲的话,CSRF 更像是钓鱼的举动,是用户攻击用户的;而对于 SSRF 来说,是由服务器发出请求,用户 服务器的。

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

在 Port 中,原理图是这样的

我们在学习 CSRF 攻击之前好好先阐述一下它的原理

一个典型的CSRF攻击有着如下的流程:

  • 受害者登录 a.com,并保留了登录凭证(Cookie)。

  • 攻击者引诱受害者访问了 b.com。

  • b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带 a.com 的 Cookie。

  • a.com 接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。

  • a.com 以受害者的名义执行了 act=xx。

  • 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让 a.com 执行了自己定义的操作。

是不是感觉这个工作流程和 XSS 有些类似,但是 XSS 与 CSRF 的最大区别在于对 Cookie 的使用,XSS 的把受害者 的 Cookie 偷盗过来,而 CSRF 则是借用了受害者的 Cookie。

下面我们举个例子深化一下 CSRF 的原理。

2 CSRF 实战场景(原理应用)

本段内容摘自美团技术团队文章

这一天,小明同学百无聊赖地刷着 Gmail 邮件。大部分都是没营养的通知、验证码、聊天记录之类。但有一封邮件引起了小明的注意:

甩卖比特币,一个只要998!!

聪明的小明当然知道这种肯定是骗子,但还是抱着好奇的态度点了进去(请勿模仿)。果然,这只是一个什么都没有的空白页面,小明失望的关闭了页面。一切似乎什么都没有发生……

在这平静的外表之下,黑客的攻击已然得手。小明的 Gmail 中,被偷偷设置了一个过滤规则,这个规则使得所有的邮件都会被 自动转发 到 hacker@hackermail.com(也就是攻击方的邮箱)。小明还在继续刷着邮件,殊不知他的邮件正在一封封地,如脱缰的野马一般地,持续不断地向着黑客的邮箱转发而去。

不久之后的一天,小明发现自己的域名已经被转让了。懵懂的小明以为是域名到期自己忘了续费,直到有一天,对方开出了 $650 的赎回价码,小明才开始觉得不太对劲。

小明仔细查了下域名的转让,对方是拥有自己的验证码的,而域名的验证码只存在于自己的邮箱里面。小明回想起那天奇怪的链接,打开后重新查看了“空白页”的源码:

<form method="POST" 		action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf" enctype="multipart/form-data"> 
	<input type="hidden" name="cf2_emc" value="true"/> 
	<input type="hidden" name="cf2_email" value="hacker@hakermail.com"/> 
	..... 
	<input type="hidden" name="irf" value="on"/> 
	<input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> 
</form> 

<script> document.forms[0].submit(); </script>

代码解析 ———— 这也是我们后续要讲到的 CSRF Poc

这个页面只要打开,就会向Gmail发送一个post请求。请求中,执行了“Create Filter”命令,将所有的邮件,转发到“hacker@hackermail.com”。

小明由于刚刚就登陆了Gmail,所以这个请求发送时,携带着小明的登录凭证(Cookie),Gmail的后台接收到请求,验证了确实有小明的登录凭证,于是成功给小明配置了过滤器。

黑客可以查看小明的所有邮件,包括邮件里的域名验证码等隐私信息。拿到验证码之后,黑客就可以要求域名服务商把域名重置给自己。

这个页面只要打开,就会向Gmail发送一个post请求。请求中,执行了“Create Filter”命令,将所有的邮件,转发到“hacker@hackermail.com”。

小明由于刚刚就登陆了Gmail,所以这个请求发送时,携带着小明的登录凭证(Cookie),Gmail的后台接收到请求,验证了确实有小明的登录凭证,于是成功给小明配置了过滤器。

黑客可以查看小明的所有邮件,包括邮件里的域名验证码等隐私信息。拿到验证码之后,黑客就可以要求域名服务商把域名重置给自己。

【如果你对网络安全入门感兴趣,那么你需要的话可以点击这里 ????

①网络安全学习路线

②20 份渗透测试电子书

③安全攻防 357 页笔记

④50 份安全攻防面试指南

⑤安全红队渗透工具包

⑥网络安全必备书籍

⑦100 个漏洞实战案例

⑧安全大厂内部教程

3/ CSRF 的攻击方式

上文中,我们明晰了一下 CSRF 的攻击原理,下面我们主讲漏洞挖掘。

1. GET 请求产生的 CSRF

GET 请求产生的 CSRF 较为简单,有 href 攻击的方式与 HTTP 请求的方式。

GET 请求的 href 类 CSRF

<a href="http://bank.com/transfer?account\_number\_from=123456789&account\_number\_to=987654321&amount=100000">View my Pictures!</a>

在已经登录了 bank.com 的情况下,当我们点击 “View my Pictures” 这一链接时,就会将钱从一个账户转移到另一个账户,数额为 100000

GET 请求的 HTTP 发包 CSRF

一般会这样利用:

![](url/withdraw?amount=10000&for=hacker)

在受害者访问含有这个img的页面后,浏览器会自动向
http://bank.example/withdraw/account=xiaoming&amount=10000&for=hacker 发出一次 HTTP 请求。在攻击者接收到请求的时候我们便可以“借用”对方的 Cookie。

2. POST 请求产生的 CSRF

POST 请求所产生的 CSRF 是我们利用地最多的攻击方式。

这种类型的 CSRF 利用起来通常使用的是一个自动提交的表单。

<form action="http://bank.example/withdraw" method=POST> 
	<input type="hidden" name="account" value="xiaoming" /> 
	<input type="hidden" name="amount" value="10000" /> 
	<input type="hidden" name="for" value="hacker" /> 
</form> 
<script> document.forms[0].submit(); </script>

访问该页面后,表单会自动提交,相当于模拟用户完成了一次 POST 操作。

POST 类型的攻击通常比 GET 要求更加严格一点,但仍并不复杂。任何个人网站、博客,被黑客上传页面的网站都有可能是发起攻击的来源,后端接口不能将安全寄托在仅允许 POST 上面。

这里可以通过 Burpsuite 自带的 CSRF Poc 工具进行攻击,不过在使用的时候也有一些小技巧。

基础的 CSRF 攻击体验

对应可以尝试的靶场,在这靶场当中,并没有添加任意的 CSRF 防御

因为 CSRF 本质上是一种钓鱼,所以我们也需要第三方网站攻击,如自己的服务器,或者 Burpsuite 靶场自带的 Exploit server;WebGoat 的 WebWolf。

我们先登录进靶场当中,发现有一功能点 ———— Update email

试想一下,我们账号进行了 Update email 的操作。

若我们在自己的服务器上面挂上恶意的 Payload,诱导他人点击之后。相对应的,对方的邮箱也会变成我们 CSRF Poc 所指定的,这样子一来,我就可以通过 “忘记密码” 这种服务来获取他账户的权限了。(当然这里有个前提,对方是登录过的且 Cookie 处于生效期间)

Exploit 部分

用 Burpsuite 自带的 CSRF Poc 构造出基本框架;

然后我们把这个核心的表单拿出来,并加以修改,构造成最后的 POC

<form method="$method" action="$url"> 
	
	<input type="hidden" name="$param1name" value="$param1value"> 
</form> 
<script>
	document.forms[0].submit(); 
</script>

再放入到 Exploit Server 当中,点击 Deliver it to victim 即可。

在对方未对 CSRF 进行任何防御的时候,上述两种 CSRF 攻击方式能够通杀。

懂其攻 -> 知其守

我们现在已经知道 CSRF 攻击方式了,接下来着重讲一讲 CSRF 的防御手段以及绕过方式。

4/ CSRF 的防御手段

主流的 CSRF 防御手段有以下两种

ban 掉不明域外访问 ———— 使用同源检测与 Samesite Cookie

多加一层验证手段 CSRF Token

1. 接近无敌的防御手法 CSRF Token

如果通俗易懂地解释一下 CSRF Token 的工作原理的话是这样的。

CSRF Token 每随着页面被操作,Token 都会改变,比如 f5 刷新,点击按钮等等,都会导致 CSRF Token 变化。

而每一个请求的 CSRF Token 会通过后端代码验证 Token 的有效性 ———— 是否正确,在时间戳上是否有效,如果加密字符串一致且时间未过期,那么这个Token就是有效的。

以 Java 为例,我们介绍一下 CSRF Token 服务端的校验逻辑

HttpServletRequest req = (HttpServletRequest)request; HttpSession s = req.getSession(); 
// 从 session 中得到 csrftoken 属性 
String sToken = (String)s.getAttribute(“csrftoken”); if(sToken == null) { 
	// 产生新的 token 放入 session 中 
	sToken = generateToken(); s.setAttribute(“csrftoken”,sToken); chain.doFilter(request, response); 
}
else { 
	// 从 HTTP 头中取得 csrftoken 
	String xhrToken = req.getHeader(“csrftoken”); 
	// 从请求参数中取得 csrftoken 
	String pToken = req.getParameter(“csrftoken”); 
	if(sToken != null && xhrToken != null && sToken.equals(xhrToken)){ 
		chain.doFilter(request, response); 
	}
	else if(sToken != null && pToken != null && sToken.equals(pToken)){ 
		chain.doFilter(request, response); 
	}
	else
	{ request.getRequestDispatcher(“error.jsp”).forward(request,response); 
	} 
}

2. 用的较少的限制同源

Samesite 是 Set-Cookie 的一种属性,它有三个值

Strict 最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。

Set-Cookie: CookieName=CookieValue; SameSite=Strict;

Lax 规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。

Set-Cookie: CookieName=CookieValue; SameSite=Lax;

还有一种属性为 None ,这种属性代表关闭了 SameSite

一般攻击要进行绕过可以尝试将 SameSite 设置为 None

这种方法的原理也比较简单,因为 CSRF 的本质也是钓鱼,比如我通过邮箱发送钓鱼邮件,那么这时候的 “源” 就是邮箱界面。

如果服务器设置了严格的同源政策,将不接收来自邮箱这一 “源” 的请求。

ok,讲完了常规的防御手段,接下来我们聊聊绕过


5/ 针对 CSRF Token 与同源政策的绕过手段

我们的绕过手段是基于 CSRF Token 或同源政策并不是那么严格的情况下,甚至某些时候由于设计的疏忽产生的逻辑漏洞。

若非特别提醒,以下所有靶场的业务点均处于 **“Update email”**下。

1. 将 POST 修改为 GET 请求进行绕过

靶场地址 Lab: CSRF where token validation depends on request method)

背后逻辑

CSRF Token 在 POST 请求当中生效,且业务点并非完全限制请求为 POST 请求,从而给了攻击者进行绕过的机会。

探测方法:将 CSRF Token 删掉,并将 HTTP 请求修改为 GET 请求。

此时的回显为**“Missing parameter ‘csrf’”**,我们再将 HTTP 请求修改为 GET 请求,观察回显。

回显 302,代表我们可以用这种方式进行绕过,构造 Payload

2. 删除 CSRF Token 进行绕过

靶场地址 Lab: CSRF where token validation depends on token being present

背后逻辑 :

并没有强验证 CSRF Token 的存在性。

我们尝试删除 CSRF Token,回显 302

在删除掉 CSRF Token 之后生成 POC 即可。

3. CSRF Token 未与用户 Session 绑定

靶场地址 Lab: CSRF where token is not tied to user session

背后逻辑

未进行严格的一一身份对应,这其实很好理解。举个例子,我们登录注册界面,实际上是需要去匹配用户名与密码是否相等的,而这里的逻辑也是一致。

那么这里,我可以先修改 Cookie,再修改 CSRF Token,来观察 CSRF Token 与 Cookie 是否对应了,或者说是否绑定了。

修改 Cookie 中的 Session 值,观察回显为 “Unauthorized”

修改 CSRF Token,观察回显为 “Invalid CSRF Token”

说明 CSRF Token 并未与 session 绑定,而是与 csrfKey(也就是 value) 绑定的,根据 cookie 的传递性,我们可以在其他页面提前把 csrfKey 注入进去,这里我们利用 img onerror 组合的 XSS 以及 CLRF 技术来构造 CSRF。

这里借用梨子师傅的 Poc

当受害者点击 CSRF 链接时会先触发 CLRF 注入 Set-Cookie 参数值,将 csrfKey 值添加到 Cookie 中,然后再用附有与 csrfKey 对应的 CSRF Token 的请求去提交修改邮箱请求。

4. 当 Cookie 中的 CSRF 值与 CSRF Token 的值一致时

靶场地址 Lab: CSRF where token is duplicated in cookie

背后逻辑:

只是将 CSRF Token 简单复制到 cookie 头中,然后仅验证两者是否一致。

所以这里我们的绕过 Poc 的核心部分应该是这样的, %0d%0a 为,也就是 CR 与 LF

<img src="url/?search=test%0d%0aSet-Cookie:%20csrf=jVDOkLRjgEe41xJlURwUeAIcDet4Cier" onerror="document.forms[0].submit();"/>

5. 对不严格的 Referer 限制进行绕过

靶场地址 Lab: CSRF with broken Referer validation

背后逻辑

并没有特别严格地限制 Referer,仅仅只是不允许了这一种的 Referer。

Referer: 靶场地址.com

// 下面是非法的

Referer: baidu.com

一般我们通过 Referer: baidu.com 来判断 Referer 的限制。

Referer: baidu.com 被限制,则我们可以通过这种方式进行绕过

http://attacker-website.com/csrf-attack?baidu.com

靶场部分,同样是对更改邮箱这个功能点进行 CSRF 攻击

这里我们需要介绍一下 history.pushState ,这个函数顾名思义,就是插入历史记录的,所以这也就是为什么第三个参数的值修改为与攻击链接同源后即可绕过错误地 Referer 头验证机制,所以我们这样构造 CSRF 页面。

我们先修改 Referer 为 baidu.com 查看回显,成功发包。

修改 Referer 为 baidu.com+?laburl ,回显为 302 成功。

构造 Payload,将 history.pushState 的第三个参数修改为 Lab 的 URL 地址。投放之后,在 Head 当中添加 Referrer-Policy: unsafe-url

6/ 小结

CSRF 攻击本质上还是一种钓鱼手段,本文着重讲了一些 CSRF 攻击的绕过手法,说不定渗透的时候多试一试就能起到意想不到的效果。

网络安全成长路线图

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成hei客大神,这个方向越往后,需要学习和掌握的东西就会越来越多,以下是学习网络安全需要走的方向:

# 网络安全学习方法

​ 上面介绍了技术分类和学习路线,这里来谈一下学习方法:

学习资料分享

当然, 只给予计划不给予学习资料的行为无异于耍流氓 ,### 如果你对网络安全入门感兴趣,那么你点击这里 ????

如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)

????网安(嘿客)全套学习视频????

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

????网安(嘿客红蓝对抗)所有方向的学习路线****????

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

img

学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

在这里插入图片描述

面试题资料

独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
在这里插入图片描述

???? 嘿客必备开发工具 ????

工欲善其事必先利其器。学习 客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全( 客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接 也可扫描下方微信二v码获取网络工程师全套资料 【保证100%免费】

在这里插入图片描述

如果你对网络安全入门感兴趣,那么你点击这里 ????

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握 的相关文章

  • 为什么这么多人自学黑客,但没过多久就放弃了(掌握正确的网络安全学习路线很重要)

    网络安全是一个 不断发展和演变 的领域 以下是一个 网络安全学习路线规划 旨在帮助初学者快速入门和提高自己的技能 基础知识 网络安全的 基础知识 包括 网络结构 操作系统 编程语言 等方面的知识 学习这些基础知识对理解网络安全的原理和技术至
  • 【安全】原型链污染 - Hackit2018

    目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下 然后可以试着访问一下 报错是因为里面没内容而已 不影响 准备工作就做好了 解题 代码审计 const express require exp
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • 【前端】canvas图片加文字

    注释标记了操作步骤 import React Component createRef from react class CertifyImgRender extends Component bgRef createRef
  • Django 403 CSRF验证失败

    我正在为我的学校编写一个注册网站 并使用 Django 作为框架 对于注册 我需要用户名 密码和注册令牌 这些尚未得到验证 我现在要做的就是从注册输入页面 使用 POST 请求 转到 您已成功注册 页面 在此过程中 csrf 令牌显然拒绝验
  • 检测到跨站请求伪造 (CSRF) 时应发回什么响应

    当检测到跨站请求伪造 CSRF 时 我应该发回什么响应 有一个我无法获取的扫描工具 它说我的一个页面没有受到保护CSRF 但它是 我发回的回复是正常的202带有句子 请求无法处理 就是这样 没有任何信息被发送回攻击者 并且我记录了这次尝试
  • 如何在 ajax POST 请求中设置标头以包含 CSRF 令牌

    帮助设置标头以消除该错误消息 Invalid CSRF Token null was found on the request parameter csrf or header X CSRF TOKEN HTML 我的JS代码 var re
  • Django CSRF 框架无法禁用并且正在破坏我的网站

    django csrf 中间件无法禁用 我已从项目的中间件中将其注释掉 但由于缺少 CSRF 问题 我的登录失败 我在 Django 主干上工作 如果中间件中未启用 CSRF 它如何会导致问题 我必须禁用它 因为我的网站上有很多 POST
  • 如何扩展或重写 BeginForm 以包含 AntiForgeryToken 字段

    我正在读这篇文章 http weblogs asp net dixin archive 2010 05 22 anti forgery request recipes for asp net mvc and ajax aspx http w
  • 防止CSRF?

    我已经从这里看到了一些问题 stackoverflow 并且THIS http www codinghorror com blog 2008 10 preventing csrf and xsrf attacks html发帖了 但我还有一
  • CSRF - 仅在第一次登录

    当我在服务器上部署我的应用程序时 第一次我可以毫无问题地登录 但是当我注销时 我在注销发布请求中收到 403 Forbidden 然后我无法成功登录 因为我在登录请求上收到 403 错误 Ctrl F5 尝试再次登录 它可以工作 但只能一次
  • Laravel 5.1 iframe 中的 CSRF,如何使其工作?

    我的应用程序有一个插件 用户可以在包含表单的网站中实现该插件 问题是我得到TokenMismatchException提交表格时 从我所做的所有研究中 我可以看到 Laravel 对跨域的保护 我知道我可以禁用它 但我不知道之后如何保护表单
  • Flask-wtf:在我发布表单之前,csrf_token 已从会话中删除

    我使用 Flask 和 Flask Security 特别是关于我的 csrf 问题的 Flask WTF 来 简化 用户注册 登录的过程 到目前为止并不容易 我在前端使用 BackboneJS 因此我有点破解了使用 Flask WTF 的
  • Symfony 2 - 删除表单和 CSRF 令牌

    我有一个来自数据库的条目列表 我希望在每一行的末尾都有一个 删除按钮 这样用户就不必先转到编辑 显示页面来删除条目 我尝试使用 csrf 令牌创建一个隐藏的输入字段 如下所示 return this gt createFormBuilder
  • 我怎样才能看到csrftoken?

    有没有办法直接在View中获取csrftoken 我想获取当前的 csrftoken 但有时会发生变化 因此从 Cookie 获取它不是一个好主意 有什么办法可以做到这一点吗 Thanks 我相信您正在寻找这个 django middlew
  • 将 csrf 令牌存储在元标记中是一个好习惯吗?

    如果我在不使用表单的情况下发出 POST 请求 并且想要防止 CSRF 攻击 我可以做的就是在元标记中设置 csrf token 并在触发请求时将其放回标头 这是一个好的做法吗 通过 header 将令牌放回 例如使用 JQuery aja
  • 请澄清:带有 CSRF 的 Jenkins REST API 需要 user:PASSWORD 的碎屑,但不需要 user:API_TOKEN 的碎屑?

    我发现与启用 CSRF 保护 https wiki jenkins io display JENKINS Remote access API RemoteaccessAPI CSRFProtection 我可以发出带有 crumbs hea
  • Angular 6 不向 http 请求添加 X-XSRF-TOKEN 标头

    我读了the docs https angular io guide http security xsrf protection以及有关 SO 的所有相关问题 但 Angular CSRF 机制仍然对我不起作用 我无论如何都无法发出自动附加
  • Codeigniter CSRF仅对一次ajax请求有效

    我想在 jQuery 的更改事件上将图像上传到服务器上 但使用 codeigniter csrf 我只能上传图像一次 如何使用ajax上传图像以进行多个请求 请记住 当我设置此值时 config csrf protection FALSE
  • 为 Blazor UI 应用程序实施防伪验证

    我们的应用程序是使用 Blazor Server 和与 Azure API 通信的 razor 页面构建的 我想知道对于 Blazor UI 我们是否应该实现防伪造 CSRF XSRF 如果可以 我可以获得一些如何实现的信息吗 我观察到为

随机推荐

  • ir50_32.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个ir50 32
  • 【固定翼飞机】基于最优控制的固定翼飞机着陆控制器设计研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 深度好文:最全的大模型 RAG 技术概览

    本文是对检索增强生成 Retrieval Augmented Generation RAG 技术和算法的全面研究 对各种方法进行了系统性的梳理 涉及了 RAG 流程中的数据拆分 向量化 查询重写 查询路由等等 在做 RAG 的小伙伴一定知道
  • messages,CentOS 7不收集日志或不存在 /var/log/messages

    var log message var log secure等都不记录了 并且都是空文件 重启机器 reboot 无效 重启日志 systemctl start rsyslog 无效 怀疑空间不足 删除 var log messages 重
  • 图解python | 基础数据类型

    1 Python变量类型 Python基本数据类型一般分为6种 数值 Numbers 字符串 String 列表 List 元组 Tuple 字典 Dictionary 集合 Set 本文详细讲解Python中变量赋值 数据类型以及数据类型
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 19年通过校招进入广州某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • [C++]:11.模拟实现vector

    模拟实现vector 二 模拟实现vector 0 看一看源码SGI 1 vector h 2 stl vector h 1 构造 2 析构函数
  • 利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序

    Neo4j 在5 11版本中将向量搜索功能完全集成到 Neo4j AuraDB 和 Neo4j 图数据库中 随后对 Neo4j 向量检索的全面支持也被集成到了 LangChain 库中 Neo4j 向量检索已成为检索增强生成 RAG 应用程
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • Android开发中常见安全问题和解决方案

    前言 开发APP时经常有问到 APP的安全怎么保障 应用程序被PJ了怎么办 手机被人捡去了怎么办 特别在号称 安全第一 风控牛逼 的银行系统内 移动产品安全性仍被持有怀疑态度 那我们来总结下APP安全的方向和具体知识 1 应用程序安全 2
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 【C++入门】C++ STL中string常用函数用法总结

    目录 前言 1 string使用 2 string的常见构造 3 string类对象的访问及遍历 迭代器遍历 访问 4 string类对象的容量操作 4 1 size和length 4 2 clear empty和capacity 4 3
  • 【VUE毕业设计】基于SSM的勤工助学管理系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 2 1 系统操作流程
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 【卡尔曼滤波】粗略模型和过滤技术在模型不确定情况下的应用研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文献
  • ipsecsnp.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个ipsecsn
  • 比尔盖茨与萨姆.奥尔特曼的对话及感想

    谈话内容 比尔 盖茨 嘿 萨姆 萨姆 奥尔特曼 嘿 比尔 比尔 盖茨 你好吗 萨姆 奥尔特曼 哦 天哪 这真的太疯狂了 我还好 这是一个非常激动人心的时期 比尔 盖茨 团队情况怎么样 萨姆 奥尔特曼 我想 你知道很多人都注意到了这样一个事实
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器