web安全学习笔记【21】——安全开发

news2024/12/25 23:58:20

安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用

#知识点:

1、PHP留言板前后端功能实现

2、数据库创建&架构&增删改查

3、内置超全局变量&HTML&JS混编

4、第三方应用插件&传参&对象调用

DAY1

#章节点

PHP:

功能:新闻列表,会员中心资源下载留言版,后台模块,模版引用框架开发

技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;

技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等。

JS:内容筹备中......

Java:内容筹备中......

演示案例:

  • 数据导入-mysql架构&库表列
  • 数据库操作-mysqli函数&增删改查
  • 数据接收输出-html混编&超全局变量
  • 第三方插件引用-js传参&函数对象调用

#开发环境:

DW + PHPStorm + PhpStudy + Navicat Premium

DW : HTML&JS&CSS开发

PHPStorm : 专业PHP开发IDE

PhpStudy :Apache MYSQL环境

Navicat Premium: 全能数据库管理工具

#数据导入-mysql架构&库表列

1、数据库名,数据库表名,数据库列名

2、数据库数据,格式类型,长度,键等

#数据库操作-mysqli函数&增删改查

PHP函数:连接,选择,执行,结果,关闭等

参考:https://www.runoob.com/php/php-ref-mysqli.html

常用:

mysqli_connect() 打开一个到MySQL的新的连接。

mysqli_select_db() 更改连接的默认数据库。

mysqli_query() 执行某个针对数据库的查询。

mysqli_fetch_row() 从结果集中取得一行,并作为枚举数组返回。

mysqli_close() 关闭先前打开的数据库连接。

MYSQL增删改查:

查:select * from 表名 where 列名='条件';

增:insert into 表名(`列名1`, `列名2`) value('列1值1', '列2值2');

删:delete from 表名 where 列名 = '条件';

改:update 表名 set 列名 = 数据 where 列名 = '条件';

#数据接收输出-html混编&超全局变量

1、html混编:使HTML(JS)在PHP语言中运行

<?php

echo '<script>alert('x');</script>'

?>

2、超全局变量:

参考:

https://www.w3school.com.cn/php/php_superglobals.asp

https://www.php.net/manual/zh/language.variables.superglobals.php

$GLOBALS:这种全局变量用于在 PHP 脚本中的任意位置访问全局变量

$_SERVER:这种超全局变量保存关于报头、路径和脚本位置的信息。

$_REQUEST:$_REQUEST 用于收集 HTML 表单提交的数据。

$_POST:广泛用于收集提交method="post" 的HTML表单后的表单数据。

$_GET:收集URL中的发送的数据。也可用于收集提交HTML表单数据(method="get") $_FILES:文件上传且处理包含通过HTTP POST方法上传给当前脚本的文件内容。

$_ENV:是一个包含服务器端环境变量的数组。

$_COOKIE:是一个关联数组,包含通过cookie传递给当前脚本的内容。

$_SESSION:是一个关联数组,包含当前脚本中的所有session内容。

#第三方插件引用-js传参&函数对象调用

引用:<script src='../xxx.js'></script>

函数对象调用:

var obj = {

    value : 0,

    increment : function (inc) {   

        this.value += typeof inc === 'number' ? inc :1;

        //设置inc且为数字时 value=inc 反之 value=1

    }

}

obj.increment();

console.log(obj.value);  //1

obj.increment(2);

涉及资源:

补充:涉及录像课件资源软件包资料等下载地址

DAY2

#知识点:

1、PHP留言板前后端功能实现

2、数据库创建&架构&增删改查

3、内置超全局变量&HTML&JS混编

4、第三方应用插件&传参&对象调用

--------------------------------------

1、PHP后台身份验证模块实现

2、Cookie&Session技术&差异

3、Token数据包唯一性应用场景

项目1:用cookie做后台身份验证

项目2:用session做后台身份验证

项目3:用token用户登录判断

#章节点

PHP:

功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等

技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;

技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等。

JS:内容筹备中......

Java:内容筹备中......

#身份验证-Cookie使用

生成cookie的原理图过程见图

1、客户端向服务器发送HTTP请求。

2、服务器检查请求头中是否包含cookie信息。

3、如果请求头中包含cookie信息,则服务器使用该cookie来识别客户端,否则服务器将生成一个新的cookie。

4、服务器在响应头中设置cookie信息并将其发送回客户端。

5、客户端接收响应并将cookie保存在本地。

6、当客户端发送下一次HTTP请求时,它会将cookie信息附加到请求头中。

7、服务器收到请求并检查cookie的有效性。

8、如果cookie有效,则服务器响应请求。否则,服务器可能会要求客户端重新登录。

setcookie(): 设置一个cookie并发送到客户端浏览器。

unset(): 用于删除指定的cookie。

DAY3

#身份验证-Session使用

1、客户端向服务器发送HTTP请求。

2、服务器为客户端生成一个唯一的session ID,并将其存储在服务器端的存储器中(如文件、数据库等)。

3、服务器将生成的session ID作为一个cookie发送给客户端。

4、客户端将session ID保存为一个cookie,通常是在本地浏览器中存储。

5、当客户端在发送下一次HTTP请求时,它会将该cookie信息附加到请求头中,以便服务器可以通过该session ID来识别客户端。

6、服务器使用session ID来检索存储在服务器端存储器中的与该客户端相关的session数据,从而在客户端和服务器之间共享数据。

session_start(): 启动会话,用于开始或恢复一个已经存在的会话。

$_SESSION: 用于存储和访问当前会话中的所有变量。

session_destroy(): 销毁当前会话中的所有数据。

session_unset(): 释放当前会话中的所有变量。

Session存储路径:PHP.INI中session.save_path设置路径

#唯一性判断-Token使用

1、生成Token并将其存储在Session

2、生成Token并将其绑定在Cookie触发

3、尝试登录表单中带入Token验证逻辑

DAY4

#文件管理模块-上传-过滤机制

1、无过滤机制

2、黑名单过滤机制

3、白名单过滤机制

4、文件类型过滤机制

$_FILES:PHP中一个预定义的超全局变量,用于在上传文件时从客户端接收文件,并将其保存到服务器上。它是一个包含上传文件信息的数组,包括文件名、类型、大小、临时文件名等信息。

$_FILES["表单值"]["name"] 获取上传文件原始名称

$_FILES["表单值"]["type"] 获取上传文件MIME类型

$_FILES["表单值"]["size"] 获取上传文件字节单位大小

$_FILES["表单值"]["tmp_name"] 获取上传的临时副本文件名

$_FILES["表单值"]["error"] 获取上传时发生的错误代码

move_uploaded_file() 将上传的文件移动到指定位置的函数

#文件管理模块-显示-过滤机制

功能:显示 上传 下载 删除 编辑 包含等

1.打开目录读取文件列表

2.递归循环读取文件列表

3.判断是文件还是文件夹

4.PHP.INI目录访问控制

is_dir() 函数用于检查指定的路径是否是一个目录

opendir() 函数用于打开指定的目录,返回句柄,用来读取目录中的文件和子目录

readdir() 函数用于从打开的目录句柄中读取目录中的文件和子目录

open_basedir:PHP.INI中的设置用来控制脚本程序访问目录

#PHP文件操作安全

-文件包含,文件上传,文件下载,文件删除,文件写入,文件遍历

#文件包含:

include() 在错误发生后脚本继续执行

require() 在错误发生后脚本停止执行

include_once() 如果已经包含,则不再执行

require_once() 如果已经包含,则不再执行

#文件上传:

1、无过滤机制

2、黑名单过滤机制

3、白名单过滤机制

4、文件类型过滤机制

架构:

1、上传至服务器本身的存储磁盘(源码在一起)

2、云产品OSS存储对象去存储文件(泄漏安全)

3、把文件上传到其他域名,如:www.xiaodi8.com->upload.xiaodi8.com

$_FILES:PHP中一个预定义的超全局变量,用于在上传文件时从客户端接收文件,并将其保存到服务器上。它是一个包含上传文件信息的数组,包括文件名、类型、大小、临时文件名等信息。

$_FILES["表单值"]["name"] 获取上传文件原始名称

$_FILES["表单值"]["type"] 获取上传文件MIME类型

$_FILES["表单值"]["size"] 获取上传文件字节单位大小

$_FILES["表单值"]["tmp_name"] 获取上传的临时副本文件名

$_FILES["表单值"]["error"] 获取上传时发生的错误代码

move_uploaded_file() 将上传的文件移动到指定位置的函数

#文件显示:

1.打开目录读取文件列表

2.递归循环读取文件列表

3.判断是文件还是文件夹

4.PHP.INI目录访问控制

is_dir() 函数用于检查指定的路径是否是一个目录

opendir() 函数用于打开指定的目录,返回句柄,用来读取目录中的文件和子目录

readdir() 函数用于从打开的目录句柄中读取目录中的文件和子目录

DAY5

#新闻列表

1、数据库创建新闻存储

2、代码连接数据库读取

3、页面进行自定义显示

#自写模版引用

1、页面显示样式编排

2、显示数据插入页面

3、引用模版调用触发

#Smarty模版引用

下载:https://github.com/smarty-php/smarty/releases

使用:

1、创建一个文件夹,命名为smarty-demo。

2、下载Smarty对应版本并解压缩到该文件夹中。

3、创建一个PHP文件,命名为index.php,并在文件中添加以下代码:

<?php

// 引入 Smarty 类文件

require('smarty-demo/libs/Smarty.class.php');

// 创建 Smarty 实例

$smarty = new Smarty;

// 设置 Smarty 相关属性

$smarty->template_dir = 'smarty-demo/templates/';

$smarty->compile_dir = 'smarty-demo/templates_c/';

$smarty->cache_dir = 'smarty-demo/cache/';

$smarty->config_dir = 'smarty-demo/configs/';

// 赋值变量到模板中

$smarty->assign('title', '欢迎使用 Smarty');

// 显示模板

$smarty->display('index.tpl');

?>

4、创建一个名为index.tpl的模板文件,并将以下代码复制到上述点定义文件夹中

<!DOCTYPE html>

<html>

<head>

<title>{$title}</title>

</head>

<body>

<h1>{$title}</h1>

<p>这是一个使用 Smarty 的例子。</p>

DAY6

#TP框架-开发-配置架构&路由&MVC模型

参考:https://www.kancloud.cn/manual/thinkphp5_1

1、配置架构-导入使用

2、路由访问-URL访问

3、数据库操作-应用对象

4、文件上传操作-应用对象

5、前端页面渲染-MVC模型

#TP框架-安全-不安全写法&版本过滤绕过

1、内置代码写法

例子:不合规的代码写法-TP5-自写

2、框架版本安全

例子1:写法内置安全绕过-TP5-SQL注入

例子2:内置版本安全漏洞-TP5-代码执行

DAY7

#知识点:

1、PHP留言板前后端功能实现

2、数据库创建&架构&增删改查

3、内置超全局变量&HTML&JS混编

4、第三方应用插件&传参&对象调用

--------------------------------------

1、PHP后台身份验证模块实现

2、Cookie&Session技术&差异

3、Token数据包唯一性应用场景

项目1:用cookie做后台身份验证

项目2:用session做后台身份验证

项目3:用token做用户登录判断

--------------------------------------

1、PHP文件管理-显示&上传功能实现

2、文件上传-$_FILES&过滤机制实现

3、文件显示-目录遍历&过滤机制实现

--------------------------------------

1、PHP文件管理-下载&删除功能实现

2、PHP文件管理-编辑&包含功能实现

--------------------------------------

1、PHP新闻显示-数据库操作读取显示

2、PHP模版引用-自写模版&Smarty渲染

3、PHP模版安全-RCE代码执行&三方漏洞

--------------------------------------

1、TP框架-开发-路由访问&数据库&文件上传&MVC模型

2、TP框架-安全-不合规写法&内置过滤绕过&版本安全漏洞

--------------------------------------

1、JS应用-原生态开发&第三库开发

2、JS功能-文件上传&登录验证&商品购买

#章节点

1、PHP:

功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等

技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;

技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等。

2、JS:

功能:登录验证,文件操作,商品购买,数据库操作,云应用接入,框架开发等

技术:原生开发,DOM树,常见库使用(JQuery),框架开发(Vue,Nodejs)等

3、Java:

内容筹备中......

#参考

1、原生JS教程

https://www.w3school.com.cn/js/index.asp

2、jQuery库教程

https://www.w3school.com.cn/jquery/index.asp

#JS原生开发-文件上传-变量&对象&函数&事件

1、布置前端页面

2、JS获取提交数据

3、JS对上传格式判断

4、后端对上传数据处理

前端JS进行后缀过滤,后端PHP进行上传处理

架构:html js php - upload.php

安全问题:

1、过滤代码能看到分析绕过

2、禁用JS或删除过滤代码绕过

#JS导入库开发-登录验证-JQuery库&Ajax技术

0、布置前端页面

1、获取登录事件

2、配置Ajax请求

3、后端代码验证

4、成功回调判断

后端PHP进行帐号判断,前端JS进行登录处理

架构:html js login.html - logincheck.php

#JS导入库开发-逻辑购买-JQuery库&Ajax技术

1、布置前端页面

2、获取登录事件

3、配置Ajax请求

4、后端代码验证

5、成功回调判断

架构:html js shop.html - shopcheck.php

#实例测试-某违规APP-密码找回&JS验证逻辑安全

DAY8

#知识点:

1、PHP留言板前后端功能实现

2、数据库创建&架构&增删改查

3、内置超全局变量&HTML&JS混编

4、第三方应用插件&传参&对象调用

--------------------------------------

1、PHP后台身份验证模块实现

2、Cookie&Session技术&差异

3、Token数据包唯一性应用场景

项目1:用cookie做后台身份验证

项目2:用session做后台身份验证

项目3:用token做用户登录判断

--------------------------------------

1、PHP文件管理-显示&上传功能实现

2、文件上传-$_FILES&过滤机制实现

3、文件显示-目录遍历&过滤机制实现

--------------------------------------

1、PHP文件管理-下载&删除功能实现

2、PHP文件管理-编辑&包含功能实现

--------------------------------------

1、PHP新闻显示-数据库操作读取显示

2、PHP模版引用-自写模版&Smarty渲染

3、PHP模版安全-RCE代码执行&三方漏洞

--------------------------------------

1、TP框架-开发-路由访问&数据库&文件上传&MVC模型

2、TP框架-安全-不合规写法&内置过滤绕过&版本安全漏洞

--------------------------------------

1、JS应用-原生态开发&第三库开发

2、JS功能-文件上传&登录验证&商品购买

--------------------------------------

1、JS技术-DOM树操作及安全隐患

2、JS技术-加密编码及数据安全调试

#章节点

1、PHP:

功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等

技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;

技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等。

安全:原生PHP开发安全,模版引用安全,第三方插件安全,TP框架安全等

2、JS:

功能:登录验证,文件操作,SQL操作,云应用接入,框架开发,打包器使用等

技术:原生开发,DOM,常见库使用,框架开发(Vue,NodeJS,打包器(Webpack)

安全:原生开发安全,NodeJS安全,Vue安全,打包器Webpack安全,三方库安全问题等

3、Java:

内容筹备中......

#JS原生开发-DOM树-用户交互

DOM:文档操作对象

浏览器提供的一套专门用来操作网页代码内容的功能,实现自主或用户交互动作反馈

安全问题:本身的前端代码通过DOM技术实现代码的更新修改,但是更新修改如果修改的数据可以由用户来指定,就会造成DOM-XSS攻击!

1、获取对象

标签:直接写

Class:加上符号.

id:加上符号#

<h1 id="myHeader" οnclick="getValue()">这是标题</h1>

document.querySelector('h1')

document.querySelector('.id')

document.querySelector('#myHeader')

2、获取对象属性

<h1 id="myHeader" οnclick="getValue()">这是标题</h1>

const h1=document.querySelector('h1')

const id=h1.id

console.log(id)

2、操作元素数据

innerHTML 解析后续代码

innerText 不解析后续代码

3、操作元素属性

className src id等

<img src="iphone.jpg" width="300" height="300"></img>

const src=document.querySelector('img')

src.src='huawei.png'

#JS导入库开发-编码加密-逆向调试

//Base64

//MD5

DAY9

#环境搭建-NodeJS-解析安装&库安装

0、文档参考:

https://www.w3cschool.cn/nodejs/

1、Nodejs安装

https://nodejs.org/en

2、三方库安装

express

Express是一个简洁而灵活的node.js Web应用框架

body-parser

node.js中间件,用于处理 JSON, Raw, Text和URL编码的数据。

cookie-parser

这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。

multer

node.js中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

mysql

Node.js来连接MySQL专用库,并对数据库进行操作。

安装命令:

npm i express

npm i body-parser

npm i cookie-parser

npm i multer

npm i mysql

#功能实现-NodeJS-数据库&文件&执行

an

1、Express开发

2、实现用户登录

3、加入数据库操作

DAY10

#打包器-WebPack-使用&安全

参考:https://mp.weixin.qq.com/s/J3bpy-SsCnQ1lBov1L98WA

Webpack是一个模块打包器。在Webpack中会将前端的所有资源文件都作为模块处理。它将根据模块的依赖关系进行分析,生成对应的资源。

五个核心概念:

1. 【入口(entry)】:指示webpack应该使用哪个模块,来作为构建内部依赖图开始。

2. 【输出(output)】:在哪里输出文件,以及如何命名这些文件。

3. 【Loader】:处理那些非JavaScript文件(webpack 自身只能解析 JavaScript和json)。webpack 本身只能处理JS、JSON模块,如果要加载其他类型的文件(模块),就需要使用对应的loader。

4. 【插件(plugins)】:执行范围更广的任务,从打包到优化都可以实现。

5. 【模式(mode)】:有生产模式production和开发模式development。

使用:

1、创建需打包文件

2、安装webpack库

3、创建webpack配置文件

4、运行webpack打包命令

安全:

1、WebPack源码泄漏-模式选择

2、模糊提取安全检查-PacketFuzzer

https://github.com/rtcatc/Packer-Fuzzer

原生态JS:前端语言直接浏览器显示源代码

NodeJS:服务段语言浏览器不显示源代码

WebPack:打包模式选择开发者模式后会造成源码泄漏(nodejs vue)

#第三方库-JQuery-使用&安全

jQuery是一个快速、简洁的JavaScript框架,是一个丰富的JavaScript代码库。设计目的是为了写更少的代码,做更多的事情。它封装JavaScript常用功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

1、使用:

引用路径:https://www.jq22.com/jquery-info122

2、安全:

检测:http://research.insecurelabs.org/jquery/test/

测试:CVE-2020-11022/CVE-2020-11023

参考:https://bl

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

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

相关文章

图解PyTorch中的torch.gather函数和 scatter 函数

前言 torch.gather在目前基于 transformer or query based 的目标检测中&#xff0c;在最后获取目标结果时&#xff0c;经常用到。 这里记录下用法&#xff0c;防止之后又忘了。 介绍 torch.gather 官方文档对torch.gather()的定义非常简洁 定义&#xff1a;从原tensor中获…

苹果App上架指南

苹果上架要求是苹果公司对于提交应用程序到苹果商店上架的要求和规定。这些要求主要是为了保证用户体验、应用程序的质量和安全性。以下是苹果上架要求的详细介绍&#xff1a;1. 应用程序的内容和功能必须符合苹果公司的规 苹果上架要求是苹果公司对于提交应用程序到苹果商店上…

iPhone设备中调试应用程序崩溃日志的高效方法探究

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么&#xff1f; 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志&#xff0c;以便调查崩溃的原因。我们将展示三种不同的…

基于YOLOv8的绝缘子检测系统

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的绝缘子小目标检测&#xff0c;阐述了整个数据制作和训练可视化过程 1.YOLOv8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的&a…

iPhone设备中定位应用程序崩溃问题的日志分析技巧

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么&#xff1f; 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志&#xff0c;以便调查崩溃的原因。我们将展示三种不同的…

iPhone设备中通过开发者选项查看应用程序崩溃日志的实用技术

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么&#xff1f; 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志&#xff0c;以便调查崩溃的原因。我们将展示三种不同的…

[Rust开发]用可视化案例讲Rust编程6.动态分发与最终封装

全系列合集 [Rust开发]用可视化案例讲Rust编程1.用Rust画个百度地图 [Rust开发]用可视化案例讲Rust编程2. 编码的核心组成&#xff1a;函数 [Rust开发]用可视化案例讲Rust编程3.函数分解与参数传递 [Rust开发]用可视化案例讲Rust编程4.用泛型和特性实现自适配shapefile的读取 […

目标检测——服饰属性标签识别数据集

一、重要性及意义 首先&#xff0c;随着电商、时尚推荐等业务的发展&#xff0c;服饰属性标签识别已经成为一项关键的计算机视觉任务。这些标签&#xff0c;如颜色、款式、材质等&#xff0c;对于实现图像搜索、时尚推荐等业务需求至关重要。服饰属性标签识别数据集为此类任务…

用ChatGPT出题,完全做不完

最近小朋友正在学习加减法&#xff0c;正好利用ChatGPT来生成加减法练习题&#xff0c;小朋友表示够了&#xff0c;够了&#xff0c;完全做不完。本文将给大家介绍如何利用ChatGPT来生成练习题。 尚未获得ChatGPT的用户&#xff0c;请移步&#xff1a;五分钟开通GPT4.0。 角色…

谷粒商城实战(007 压力测试)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第141p-第p150的内容 简介 安装jmeter 安装jmeter 使用中文 这样写就是200个线程循环100次 一共是2万个请求 介绍线程组 添加请求 可以是htt…

设计模式之享元模式详解(下)

4&#xff09;完整解决方案-不带外部状态 1.结构图 IgoChessman充当抽象享元类&#xff0c;BlackIgoChessman和WhiteIgoChessman充当具体享元类&#xff0c;IgoChessmanFactory充当享元工厂类。 2.代码案例 抽象享元类 //围棋棋子类&#xff1a;抽象享元类 abstract class …

ES-7.12-官方文档阅读-ILM-Automate rollover

教程&#xff1a;使用ILM自动化滚动创建index 当你持续将带有时间戳的文档index到Elasticsearch当中时&#xff0c;通常会使用数据流&#xff08;data streams&#xff09;以便可以定义滚到到新索引。这是你能够实施一个hot-warm-cold架构来满足你的性能要强&#xff0c;控制随…

【单片机 5.3开关检测】

文章目录 前言一、5.3开关检测1.1没按键按下的1.2有按键按下的 二、改进1.改进 三、独立键盘3.1为什么要取反3.2 实用的按键 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 课程需要&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xf…

C++项目——集群聊天服务器项目(十一)服务器异常退出与添加好友业务

本节来实现C集群聊天服务器项目中的服务器异常退出与添加好友业务&#xff0c;一起来试试吧 一、服务器异常退出 在Linux环境下&#xff0c;我们在服务器端使用CTRLC结束程序执行&#xff0c;即使用CTRLC让服务器异常退出&#xff0c;这样的后果是本应登录服务器的用户在数据库…

2023年第十四届蓝桥杯 - 省赛 - Python研究生组 - A.工作时长

题目 数据文件&#xff1a;https://labfile.oss.aliyuncs.com/courses/21074/records.txt Idea 直接通过 datetime 模块加载时间字符串进行格式化&#xff0c;然后对时间列表进行排序&#xff0c;最后两两计算时间差。 Code Python from datetime import datetimetime_lis…

数论与线性代数——整除分块【数论分块】的【运用】【思考】【讲解】【证明(作者自己证的QWQ)】

文章目录 整除分块的思考与运用整除分块的时间复杂度证明 & 分块数量整除分块的公式 & 公式证明公式证明 代码code↓ 整除分块的思考与运用 整除分块是为了解决一个整数求和问题 题目的问题为&#xff1a; ∑ i 1 n ⌊ n i ⌋ \sum_{i1}^{n} \left \lfloor \frac{n}{…

ESP32 引脚分配

请注意&#xff0c;以下引脚分配参考适用于流行的 30 引脚ESP32 devkit v1开发板。 仅输入引脚 GPIO34~39是GPIs–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出&#xff0c;因此只能将这些管脚用作输入&#xff1a;GPIO 34、GPIO 35、GPIO 36、GPIO 39 S…

【opencv】教程代码 —features2D(7)根据单应性矩阵估计相机坐标系下的物体位姿...

pose_from_homography.cpp从图像中找到棋盘角点并进行姿态估计 从图像中找到棋盘角点并显示 计算角点在世界坐标系中的位置 读取相机内参和畸变系数并校正图像中的角点 计算从3D点到2D点的单应性矩阵 通过奇异值分解(SVD)优化对旋转矩阵的估计 基于单应矩阵分解及其优化结果&am…

VSCode - 离线安装扩展python插件教程

1&#xff0c;下载插件 &#xff08;1&#xff09;首先使用浏览器打开 VSCode 插件市场link &#xff08;2&#xff09;进入插件主页&#xff0c;点击右侧的 Download Extension 链接&#xff0c;将离线安装包下载下来&#xff08;文件后缀为 .vsix&#xff09; 2&#xff0c;…

Django之REST framework环境搭建

一、环境搭建 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API 官网:Home - Django REST framework 中文文档:主页 - Django REST framework中文站点 1.1、安装 Python3.8+ pip install django==4.1.1 pip inst…