网络安全--编码,服务端口,前端基础

这篇具有很好参考价值的文章主要介绍了网络安全--编码,服务端口,前端基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.编码

1)HTML编码:也称实体编码

2)URL 编码

3)TLS 的主要特性包括

4)服务的基本端口

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

2.编写from表单提交给后端

1)前端部分

2)后端部分(php)


1.编码
1)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 编码和解码,以简化开发过程。

2)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 的完整性和有效性,并不能提供真正的安全性。在涉及到数据机密性的场景下,还需要使用其他加密手段来保护数据的安全传输。

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

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

Base64 编码的主要特点如下:

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

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

增加数据大小: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'))


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

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

3)TLS 的主要特性包括

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

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

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

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

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

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

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

4)服务的基本端口

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


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

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

1.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 加密:文章来源地址https://www.toymoban.com/news/detail-605979.html

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)
2.编写from表单提交给后端
1)前端部分
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP连接示例</title>
</head>
<body>
    <h1>数据输入表单</h1>
    <form action="index.php" method="post">
        <label for="name">姓名:</label>
        <input type="text" id="name" name="name" required><br>
        
        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" required><br>
        
        <label for="message">留言:</label><br>
        <textarea id="message" name="message" rows="4" cols="50" required></textarea><br>
        
        <input type="submit" value="提交">
    </form>
</body>
</html>
2)后端部分(php)
 
<!DOCTYPE html>
<html>
<head>
    <title>处理提交的数据</title>
</head>
<body>
    <h1>提交结果</h1>
    <?php
    // 检查是否接收到 POST 数据
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // 获取提交的数据
        $name = $_POST["name"];
        $email = $_POST["email"];
        $message = $_POST["message"];

        // 在这里可以对数据进行处理,比如存储到数据库或发送电子邮件等

        // 显示接收到的数据
        echo "<p><strong>姓名:</strong> $name</p>";
        echo "<p><strong>邮箱:</strong> $email</p>";
        echo "<p><strong>留言:</strong> $message</p>";
    }
    ?>
</body>
</html>

到了这里,关于网络安全--编码,服务端口,前端基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高级网络安全管理员 - 网络设备和安全配置:交换机端口安全配置

    Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况

    2024年02月03日
    浏览(26)
  • 网络周,第五天:冗余技术-端口安全

            对不起,兄弟姐妹,由于我最近比较忙,一直没有更新稿子了,接下来的两周内,我每天争取两篇关于安全措施的稿子,来弥补大家。                                                     理解冗余技术、生成树、端口聚合、端口安全的基本概念。         冗

    2024年02月02日
    浏览(12)
  • 信息安全概论之《密码编码学与网络安全----原理与实践(第八版)》

    前言:在信息安全概论课程的学习中,参考了《密码编码学与网络安全----原理与实践(第八版)》一书。以下内容为以课件为主要参考,课本内容与网络资源为辅助参考,学习该课程后作出的总结。 该课程不是密码学编程,也不是网络安全攻防课程,而是学生进入信息安全

    2024年02月10日
    浏览(13)
  • 网络安全:通过445端口暴力破解植入木马。

    网络安全:通过445端口暴力破解植入木马。 木马制作工具,如:灰鸽子等等 445端口是文件共享端口。可以进入对方文件硬盘进行植入木马: 使用文件共享进入对方磁盘: 在cmd输入net use \\\\x.x.x.xipc$ 之后会让你输入账号和密码: ipc$中$代表共享 $之前代表的是共享什么文件夹

    2024年02月02日
    浏览(39)
  • 网络安全02-C段扫描、开放端口

    2024年02月11日
    浏览(11)
  • 网络安全之互联网暴露资产端口

    互联网暴露资产因直接向公众互联网开放,极易遭受来自外部组织或人员的入侵与攻击,是风险管控的高危区域。 作为企业的安全管理,互联网暴露资产的管理是非常重要的一环。应该建立规范的流程严控互联网暴露端口的审批,对互联网暴露出口应尽量缩减收敛减少暴露面

    2024年02月08日
    浏览(19)
  • 网络安全:Hydra 端口爆破工具.(九头蛇)

    Hydra 也叫九头蛇,是一款开源的暴力PJ工具,集成在kali当中。可以对多种服务的账号和密码进行爆破,包括 Web 登录、数据库、SSH、FTP 等服务. 应用协议安全:Hydra 端口爆破工具.(九头蛇) Hydra(九头蛇)使用: 使用方法:直接打开 kali 终端,输入. (1)实战:爆破 SSH 协议

    2024年02月13日
    浏览(17)
  • 密码编码学与网络安全(第五版)课后习题-CH03

    3.1 为什么说研究Feistel密码很重要?  feistel  是使用乘积密码获得简单的代换密码,乘积密码指的是执行两个或多个基本的密码系统,最后的密码强度要高于每个基本密码系统产生的结果 3.2 分组密码和流密码的差别是什么? 分组密码是每次处理输入的一组元素,相应的得到一

    2023年04月08日
    浏览(12)
  • 【Python安全编程】Python实现网络主机和端口扫描

    本文主要讲几个利用Python实现网络扫描的小例子,可以 结合多线程或多进程 编程改进实例 我曾经走过多遥远的路 跨越过多少海洋去看你 Python3环境 scapy库 socket库 能与物理机正常通信的虚拟机 由于本文实验目的为实现网络扫描,即探测网络中存活的主机,为了避免影响真实

    2024年02月11日
    浏览(17)
  • 前端安全——最新,网络安全学习路线

    人生的精彩就在于你永远不知道惊喜和意外谁先来,又是一个平平无奇的早晨,我收到了一份意外的惊喜——前端某项目出现lodash依赖原型污染漏洞。咋一听,很新奇。再仔细一看,呕吼,更加好奇了~然后就是了解和修补漏洞之旅。 最后的最后,却发现其实这个漏洞修复起

    2024年04月10日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包