网安第二天笔记

news2024/11/26 20:45:33

ssh 22端口 账号密码登陆、证书登录

smtp 25端口 邮件协议

DNS 53

DHCP 67 68端口 四个包

        1.DHCP服务器:服务器管理IP地址池和配置参数

        2.客户端请求:发送DHCP广播请求,discover消息

        3.DHCP服务器回应:收到discover会回复offer信息(包含可用IP和配置信息)

        4.客户端选择:收到多个offer后,选择其中一个将offer的源地址发给服务器(request消息)

        5.服务器确认收到:收到request后,向用户端发送acknowledgment消息

        6.客户端配置

http 80 三次握手

pop3 110 邮件协议

https 443

ladp 389 域控制器

mysql 3306

SQL server  1433 C#

mogodb        27017

redis         6379

oracle 1521       数据库

 Windows远程登陆       3389

Flask 是一种流行的 Python Web 框架,用于构建简单而强大的 Web 应用程序。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Flask!"

if __name__ == '__main__':
    app.run()

创建了一个名为 app 的 Flask 应用程序对象,并使用 @app.route() 装饰器定义了一个路由 /,它将返回 "Hello, Flask!"。最后,通过调用 app.run() 方法来运行应用程序。

运行应用程序时,可以在命令行中执行 Python 文件,或者直接在集成开发环境(IDE)中点击运行按钮。Flask 将启动一个开发服务器,并监听默认端口 5000。打开浏览器并访问 http://localhost:5000,即可看到 "Hello, Flask!" 的输出。

编码

HTML编码:也称实体编码

1.对于待编码的字符,在 HTML 中找到对应的实体名称或字符引用。
2.将原字符替换为对应的实体名称或字符引用。

实体名称(entity name)使用 & 符号作为前缀和 ; 符号作为后缀,形式为 &entity_name;。例如,小于号 < 的实体名称为 &lt;,引号 " 的实体名称为 &quot;。

字符引用(character reference)使用十进制或十六进制数来表示字符的 Unicode 编码,形式为 &#decimal_number; 或 &#xhexadecimal_number;。例如,小于号 < 的字符引用可以是 &#60; 或 &#x3C;。

以下是一些常见的特殊字符及其对应的实体名称和字符引用:

<:实体名称 &lt;,字符引用 &#60; 或 &#x3C;
>:实体名称 &gt;,字符引用 &#62; 或 &#x3E;
":实体名称 &quot;,字符引用 &#34; 或 &#x22;
':实体名称 &apos;,字符引用 &#39; 或 &#x27;
&:实体名称 &amp;,字符引用 &#38; 或 &#x26;
        通过 HTML 编码,特殊字符可以被正确显示在网页上,而不会与 HTML 标签冲突或产生解析错误。这对于防止跨站脚本攻击(XSS)等安全威胁具有重要作用

        需要注意的是,除了特殊字符外,很多情况下并不需要对常规的英文字母、数字和一些符号进行 HTML 编码。只有在确保特殊字符不会引起混淆或解析错误时才需要进行编码处理。

        当处理 HTML 数据时,我们可以使用编码和解码函数来进行相应的转换操作。例如,在 JavaScript 中,可以使用 innerHTML 属性或 textContent 属性来设置或获取 HTML 文本,浏览器会自动处理 HTML 编码和解码的过程。此外,还有一些编程语言和框架提供了专门的函数或工具库来处理 HTML 编码和解码,以简化开发过程。

URL 编码:

        是一种用于在 URL 中表示特殊字符的编码方式,也被称为百分号编码(percent encoding)。它通过将特殊字符转换为特定的编码形式,以避免与 URL 结构冲突或引起解析错误。

URL 编码的规则很简单:将特殊字符替换为 % 符号后跟两位十六进制数。具体的编码过程如下:

1.对于待编码的字符,检查其 ASCII 码值。
2.将 ASCII 码值转换为两位十六进制数。
3.在原字符前加上 % 符号,并用两位十六进制数表示的值替换原字符。
例如,假设有一个包含特殊字符的 URL:https://example.com/search?q=hello world!。我们要对其中的特殊字符进行编码。

1.空格字符 " " 的 ASCII 码值为 32,转换为十六进制为 20。所以,空格字符被编码为 %20。
2.惊叹号字符 "!" 的 ASCII 码值为 33,转换为十六进制为 21。所以,惊叹号字符被编码为 %21。
        

        最终编码后的 URL 为:https://example.com/search?q=hello%20world%21。这样,URL 就不会因为特殊字符而导致解析错误。

        URL 编码常用于处理 URL 参数或表单数据的安全传输问题。它确保了特殊字符被正确解释,并且可以防止 URL 注入攻击或使 URL 格式无效。当处理含有特殊字符的 URL 数据时,通常会调用编码和解码函数(如 JavaScript 的 encodeURIComponent() 和 decodeURIComponent() 函数)来进行相应的处理。

        需要注意的是,URL 编码并不对所有字符进行编码,只对特殊字符进行编码,例如空格、问号、等号等。其他常规的英文字母、数字和一些符号不会被编码。同时,URL 编码只能确保 URL 的完整性和有效性,并不能提供真正的安全性。在涉及到数据机密性的场景下,还需要使用其他加密手段来保护数据的安全传输。

加密传输协议(Transport Layer Security,TLS)

        是一种用于保护网络通信安全的协议。TLS 旨在通过提供加密、数据完整性和身份认证等特性,确保在互联网上传输的数据得到保护,不被未经授权的访问或篡改。

TLS 是一种协议套件,其基于 SSL(Secure Sockets Layer)协议演变而来。目前,TLS 的最新版本为 TLS 1.3,它在安全性和性能方面都有一定的改进。

TLS 的主要特性包括:

  1. 数据加密:TLS 使用对称密钥加密和非对称密钥加密相结合的方式,用于加密在网络上传输的数据。对称密钥加密用于实际数据的加密和解密,而非对称密钥加密用于在通信开始时建立安全连接和交换对称密钥。

  2. 数据完整性:TLS 使用消息认证码(Message Authentication Code,MAC)来保证数据完整性。MAC 是在加密数据的基础上计算的校验值,并与数据一起传输,以便接收方验证数据在传输过程中是否被篡改。

  3. 身份认证:TLS 通过使用数字证书进行身份认证,确保通信双方的身份是可信的。服务器端必须具有有效的数字证书进行身份验证,而客户端可以选择进行身份验证或不验证。

  4. 前向保密:TLS 1.3 引入了前向保密(Forward Secrecy)的概念。它确保即使长期的私钥被泄露,先前的通信仍然是安全的。每次建立连接时,都会生成新的临时密钥用于数据加密,提高了安全性。

  5. 握手过程:在建立 TLS 连接之前,客户端和服务器之间需要进行握手过程来协商加密算法、建立安全连接等。该过程包括互相验证身份、协商加密算法版本和密钥等重要信息。

TLS 在保护各种网络通信中扮演着重要角色,特别是在涉及敏感数据传输的场景下,如网上银行、电子商务、电子邮件等。它提供了一种标准化的安全通信机制,利用密码学和协议规范来确保通信的机密性、完整性和可信性。

需要注意的是,TLS 只保护数据在网络传输过程中的安全性,而不解决应用程序本身的安全问题。因此,在实现安全通信时,还需要结合其他安全控制措施,如访问控制、身份认证和数据加密等。同时,使用更新的 TLS 版本,并及时应用安全补丁,以防止已知的漏洞和攻击。

MD5(Message Digest Algorithm 5)和 SHA(Secure Hash Algorithm)

        都是常见的哈希算法,用于对数据进行加密和生成摘要(散列值)。

MD5 加密: MD5 是一种广泛使用的哈希算法,生成的摘要长度为 128 位。然而,由于其已被证明存在一些安全性问题,不再推荐用于加密敏感数据。在许多编程语言中,都有内置的函数或库可以计算 MD5 哈希值。以下是一个示例,演示如何使用 Python 进行 MD5 加密:

import hashlib

def md5_encrypt(data):
    md5 = hashlib.md5()
    md5.update(data.encode('utf-8'))
    return md5.hexdigest()

plaintext = "Hello, world!"
encrypted = md5_encrypt(plaintext)
print("MD5 encrypted value:", encrypted)

2.SHA 加密: SHA 是一系列安全哈希算法,包括 SHA-1、SHA-256、SHA-384、SHA-512 等。SHA-256 是最常用的 SHA 算法之一,它生成的摘要长度为 256 位。相较于 MD5,SHA 算法提供了更高的安全性和抵抗碰撞的能力。以下是一个示例,演示如何使用 Python 进行 SHA-256 加密:

import hashlib

def sha256_encrypt(data):
    sha256 = hashlib.sha256()
    sha256.update(data.encode('utf-8'))
    return sha256.hexdigest()

plaintext = "Hello, world!"
encrypted = sha256_encrypt(plaintext)
print("SHA-256 encrypted value:", encrypted)

Base64 编码

是一种将二进制数据转换为可打印字符的编码方式。它常用于在文本协议中传输或存储二进制数据,例如在电子邮件中传输附件或在网页中嵌入图像。

Base64 编码使用了 64 个字符来表示所有可能的 6 位组合。这些字符包括 A-Z(大小写敏感)、a-z、0-9 和两个特殊字符 "+" 和 "/"。另外,还可能包含一个填充字符 "=",用于确保编码后的数据长度为 4 的倍数。

Base64 编码的主要特点如下:

  1. 可读性:Base64 编码后的数据由可见字符组成,因此可以在各种文本系统中正确地表示和传输,而不会出现乱码或非法字符。

  2. 扩展性:Base64 编码适用于各种二进制数据,包括文本、图像、音频、视频等。通过编码,可以将这些数据转换为文本格式,方便传输和处理。

  3. 增加数据大小:Base64 编码会增加数据的大小。编码后的数据通常比原始数据大约 1/3,并且长度总是 4 的倍数。这是因为每 3 个字节的数据会被编码为 4 个字符。

Base64 编码的原理是将 3 个字节的数据分为 4 个 6 位的组,并将每个组转换为对应的可打印字符。如果原始数据不足 3 个字节,Base64 编码会使用填充字符 "=" 补齐。

以下是一个示例,演示如何使用 Python 进行 Base64 编码和解码:

import base64

# 编码
data = b'Hello, world!'  # 使用字节串作为输入数据
encoded_data = base64.b64encode(data)
print("Base64 encoded data:", encoded_data)

# 解码
decoded_data = base64.b64decode(encoded_data)
print("Base64 decoded data:", decoded_data.decode('utf-8'))

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

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

相关文章

Vue2.x和Vue3.x面试常问知识点-面试题

SPA单页面的理解&#xff0c;它的优缺点分别是什么&#xff1f; 是什么 SPA&#xff08; single page application &#xff09;仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。 一旦页面加载完成&#xff0c;SPA 不会因为用户的操作而进行页面的重新加载或跳转 而…

数据结构与算法——链栈及基本操作(包含入栈和出栈)详解

链栈&#xff0c;即用链表实现栈存储结构。 链栈的实现思路同顺序栈类似&#xff0c;顺序栈是将数顺序表&#xff08;数组&#xff09;的一端作为栈底&#xff0c;另一端为栈顶&#xff1b;链栈也如此&#xff0c;通常我们将链表的头部作为栈顶&#xff0c;尾部作为栈底&#…

C语言程序设计——文件操作

一、文件的打开和关闭 1. 文件指针 每个被使用的文件&#xff0c;都会在内存中开辟一个相应的文件信息区&#xff0c;用来存储文件的相关信息&#xff08;文件名、文件状态、文件位置……&#xff09;。 这些信息是保存在一个结构体变量中&#xff0c;该结构体类似是由系统声明…

选择优秀的敏捷项目管理工具:指南与考虑因素!

如何选择优秀的敏捷项目管理工具?敏捷项目管理工具是用于管理和执行敏捷项目的任何工具。在最基本的形式中&#xff0c;白板和便签可以被认为是敏捷管理工具。敏捷工具和其他项目管理工具之间的主要区别在于它们处理敏捷框架的能力&#xff0c;例如看板和Scrum。 换句话说&…

OpenAI推动人工智能治理向前发展

OpenAI和其他领先的人工智能实验室正在做出一系列自愿承诺&#xff0c;以加强人工智能技术和我们的服务的安全性、安全性和可信度。这个过程由白宫协调&#xff0c;是在美国和世界各地推进有意义和有效的人工智能治理的重要一步。 作为我们建立安全和有益的AGI的使命的一部分&a…

符合国内企业国产化需求的进销存系统

编者按&#xff1a;随着国内企业的数字化转型以及国产信创的要求&#xff0c;企业在选择软件系统的时候更加关注国产化这方面的是否能够被满足&#xff0c;信创需求的被满足&#xff0c;意味着可适用的范围更加宽泛&#xff0c;对企业来说&#xff0c;是一个花小成本有大收益的…

【简单图论】CF1833 E

Problem - E - Codeforces 题意&#xff1a; 思路&#xff1a; 显然&#xff0c;最大值就是什么边都不连的连通块个数&#xff0c;最小值就是能连的都连上 那就是&#xff0c;如果一个连通块存在度为1的点&#xff0c;就把它当作接口连接 Code&#xff1a; #include <b…

23.动态加载

动态加载 html部分 <div class"loading"> </div>css部分 *{margin: 0;padding: 0; } body{background-color: #2c3e50;display: flex;align-items: center;justify-content: center;height: 100vh;overflow: hidden; } .loading{position: relative;w…

Simulink仿真模块 - Mux

Mux:将相同数据类型和复/实性的输入信号合并为虚拟向量 在仿真库中的位置为:Simulink / Commonly Used Blocks Simulink / Signal Routing HDL Coder / Commonly Used Blocks HDL Coder / Signal Routing 模型为: 说明 Mux 模块将具有相同数据类型和复/实性的输入合并为一个向…

高精度地图服务引擎项目

技术栈&#xff1a;使用vue3TypeScriptElement PlusPiniaaxios 项目描述&#xff1a;高精度地图服务引擎项目&#xff0c;提供轻量化处理3D瓦片切片分布式处理分发服务的一站式解决方案 工作内容&#xff1a;1、项目60%已上的页面开发 2、部分模块的功能实现&#xff0c; 3、封…

网络安全进阶学习第七课——文件包含漏洞

文章目录 一、文件包含概念二、文件包含漏洞原理三、文件包含分类文件包含分为两种&#xff1a; 四、与文件包含相关的配置文件&#xff1a;&#xff08;php.ini文件&#xff09;五、与文件包含有关的函数1、include()2、include_once()3、require()4、require_once() 六、文件…

深兰科技大模型入围2023年数字经济应用场景“揭榜挂帅” 项目名单

7月17日&#xff0c;武汉市2023年数字经济应用场景“揭榜挂帅”拟揭榜项目名单&#xff0c;正式揭晓公示。 在经专家评审、项目路演、现场核查等层层遴选之后&#xff0c;由深兰科技武汉研发中心、深兰科技(上海)有限公司联合武汉碧水产业发展有限公司、武汉江汉路步行街投资发…

IDEA导入微服务项目后自动将微服务展示在service面板中

有时候&#xff0c;不会自动将微服务展示在service面板中。 添加service面板&#xff1a; service面板&#xff1a; 更新所有maven&#xff0c;就可以自动将微服务展示在service面板中。

C++: day7

1.简单实现部分vector #include <iostream>using namespace std;template <typename T> class My_vector { private:T * first; //指向第一个元素T * last; //指向最后一个元素T * end; //指向容器末尾public://构造函数My_vector(){first las…

通识测试08

正交试验法 正交实验助手&#xff08;工具&#xff09; 正交原理介绍 一、正交实验法&#xff0c;统计学家提出 2.使用工具&#xff1a;正交表 3. 统计和分析实验数据&#xff0c;从大量实验中找到合适的实验数据组合。 4. 大量实验中挑选一部分具有代表性的点。进行实验&…

三星李在镕亲会马斯克,低价拿下特斯拉HW5.0芯片订单

作者|Amy 编辑|德新 提到特斯拉&#xff0c;第一印象往往是「美国新晋新能源汽车巨头」。实际上特斯拉的芯片设计也是走在行业前列的。 2016年&#xff0c;特斯拉挖来了传奇芯片大师Jim Keller&#xff0c;搭建了由Pete Bannon等大牛组建的芯片研发团队。其自研的HW3.0&#…

钉钉和金蝶云星空接口打通对接实战

钉钉和金蝶云星空接口打通对接实战 对接系统&#xff1a;钉钉 钉钉是阿里巴巴集团打造的企业级智能移动办公平台&#xff0c;是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工牌、工作台深度整…

夯实数字化转型安全地基,华东某农商行开源安全治理经验

华东某农村商业银行是一家全国首批组建的股份制农村金融机构。近年来&#xff0c;该农商行坚持“科技强行”战略&#xff0c;进一步夯实数字化核心基础&#xff0c;积极推动金融科技与产品、服务的深度融合&#xff0c;努力拓展数字金融的包容性&#xff0c;让数字金融更有温度…

音频降噪之人声分离

音频降噪 Ultimate Vocal Remover GUI v5.5.1工具使用 1&#xff1a;是什么 集成目前最先进的从音频文件中分离人声的源分离模型。 本工程&#xff0c;将Ultimate Vocal Remover GUI v5.5.1界面工具&#xff0c;改写成可以在服务器端批量推理的工具。 界面仓库地址&#xff…

【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题三时间序列预测Python代码分析

2023 年第二届钉钉杯大学生大数据挑战赛 初赛 B&#xff1a;美国纽约公共自行车使用量预测分析 问题三时间序列预测Python代码分析 相关链接 【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B&#xff1a;美国纽约公共自行车使用量预测分析 问题一Python代码分析 【2023 年…