https原理+http状态码+html5 --网络安全基础

本文介绍了网络安全的基础知识,包括HTTPS协议的原理,HTTP状态码的常见类型,以及HTML5的相关特性。重点讲解了HTTPS如何通过TLS/SSL提供安全性,TLS握手过程,以及RSA密钥协商算法。此外,还探讨了HTTP状态码如301、302、304等的用途,以及HTML5中的全局属性、字符编码和实体编码的应用,强调了网络安全在网页开发中的重要性。
摘要由CSDN通过智能技术生成

目录

网页元素的属性

全局属性(global attributes)----是所有元素都可以使用的属性,可以加在任意一个网页元素上面

id----元素在网页内唯一标识符

class---用来对网页元素进行分类

tabindex

HTML字符编码/HTML实体编码

字符的数字表示法:

字符的实体表示法:

html实体编码运用的例子:

1、( )括号      --- 为了让xss漏洞不执行    

2、限制&符     ---防止实体编码转义、把实体编码过滤了,没有&符实体编码就不成立

3、限制 \        ---因为Unicode编码一般 \u 、限制了 \ 则Unicode编码也转义不了

4、限制大小于号      

5、限制 '  (单引号)    ---不让英文执行

img标签

链接标签

a

href

svg

网址的组成部分

URL 字符转义的方法

https:http + tls / ssl

dns的工作原理

域名服务器​编辑dns几个记录类型                 

递归查询和迭代查询

dns分级查询过程

https原理--RSA密钥协商算法

http安全上存在以下三个风险

https在http与tcp层之间加入了tls协议

以加密的方式来传输必须解决的问题

TLS握手过程

clientHello包---TLS的第一次握手

ServerHello包---TLS的第二次握手

签名

加密

证书签名及客户端校验过程

RSA密钥协商握手过程

TLS的第三次握手

RSA算法的缺陷

GET和POST传参的区别

 状态码

301

302

303

 304

307

308

状态码总结

永久重定向

临时重定向

方法保持

502

504


html5

网页元素的属性

网页元素的属性(attribute)可以定制元素的行为,不同的属性会导致元素有不同的行为、元素属性的写法是 HTML 标签内部的“键值对”

<html lang="en">

上面代码中,<html>标签内部的键值对lang=“en”,就称为html元素的属性。属性名为lang,属性值为en,此处的lang不区分大小写

全局属性(global attributes)----是所有元素都可以使用的属性,可以加在任意一个网页元素上面

常见的全局属性有:id、class、title、tabindex、accesskey、style、hidden、lang,dir、contenteditable、spellcheck、data-属性、事件处理属性

这里只对id、class做介绍

id----元素在网页内唯一标识符

<p id="p1"></p>
<p id="p2"></p>
<p id="p3"></p>

id的属性值必须全局唯一且属性的值不能包含空格

好处---便于在js中找到精准抓取元素

class---用来对网页元素进行分类

<p class="a"></p>
<p class="a"></p>
<p class="a1 a2 a3"></p>

第一个p和第二个是一类,class属性相同、

元素可以同时有多个 class,它们之间使用空格分隔

class是样式,定义一个样式可以重复使用

在js操作的时候抓取出来的是一个数组

tabindex

简单来说就是当你按下TAB的时候能不能选中这个元素(焦点在不在这个元素上)

<p tabindex="0">        --这段文字获得焦点

这样这段文字就可以获得焦点了

HTML字符编码/HTML实体编码

可以通过一些编码的形式来被html识别到

网页包含了大量的文字,浏览器必须知道这些文字的编码方法,才能把文字还原出来

字符的数字表示法:

字符的码点表示法是&#N;(十进制,N代表码点)或者&#xN;(十六进制,N代表码点)

这里是使用ASCII码,hello也可根据下面这个简单的推理出来(详细的可以查ASCII码表,常用的需要记忆)

<p>hello</p>
<p>&#104;&#101;&#108;&#108;&#111;</p>     --十进制
<p>&#x68;&#x65;&#x6c;&#x6c;&#x6f;</p>     --十六进制

Bin(二进制)  Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符  解释
0100  0001     0101          65         0x41        A    大写字母A
0110  0001     0141          97         0x61        a    小写字母a

字符的实体表示法:

HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,下面给大家列出几个常用的(详细的可以查阅资料)

<:&lt;

>:&gt;

":&quot;

':&apos;

空格:&nbsp;

html实体编码运用的例子:

 这里是在img下输出的、GET是一个输入

replace在这把数组里的字符全都替换成空了,在输入的时候替换了

1、( )括号      --- 为了让xss漏洞不执行    

这里可以看到在alert弹窗下,没有了括号便无法执行、

而 ` ` 可以绕过括号执行

2、限制&符     ---防止实体编码转义、把实体编码过滤了,没有&符实体编码就不成立

3、限制 \        ---因为Unicode编码一般 \u 、限制了 \ 则Unicode编码也转义不了

下图\u0061\u006c…………其实就是alert弹窗的转义,限制了 \ 则也无法转义

上面写了两个 \\ 是为了防止转义,写了两个再次转义将其变成了普通字符

4、限制大小于号      

<script>       ---可以正常执行
script         ---限制了大小于号可见这是执行不了的

5、限制 '  (单引号)    ---不让英文执行

alert(1)       ---数字可以不用' '(单引号)
alert('abc')    ---英文的时候就需要用' ' (单引号)

这里就把常见的能想到的都过滤掉了(实体编码、Unicode编码、<>、' '、()),这样要输出的东西是几乎很难很难成功的

img标签

img标签起到一个加载图片的一个作用(可以用相对路径或者绝对路径)

而里面有一个onerror的一个函数(是js里的一个函数),当前面加载出错的时候就自动出发后面的一个函数,例如下面,img写了一个没有的“1”,则加载错误后将自动触发后面的弹窗

img标签可以通过onerror触发xss漏洞,有一定危险性(危险性来自于img后面的onerror)

<img src="1" onerror=alert(1) alt="">

链接标签

允许用户在页面上,从一个网址跳转到另一个网址,从而把所有资源联系在一起

a

链接通过<a>标签表示,用户点击后,浏览器会跳转到指定的网址

href

href属性给出链接指向的网址

支持js函数

 跳转了,也弹窗了 

svg

用于画图 

 但是他onload属性是支持js的,可以用于触发弹窗

<script>

还有下面一些其他属性,大部分跟 JavaScript 语言有关,可以参考相关的 JavaScript 教程。

async:该属性指定 JavaScript 代码为异步执行,不是造成阻塞效果,JavaScript 代码默认是同步执行。

defer:该属性指定 JavaScript 代码不是立即执行,而是页面解析完成后执行。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值