其他分享
首页 > 其他分享> > 网安总结日志(1)

网安总结日志(1)

作者:互联网

网安笔记

正则表达式

https://regex101.com/(正则测试用的地址)

概念

正则表达式是一种形式语言(规律而不是语义)

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

通常用于:

校验:检查一个字符串是否包含指定模式子字符串

替换:将匹配的子字符串替换为给定的新字段

匹配:提取符合匹配模式的字符串

组成

正则表达式=多个pattern组成(模式单元)

pattern=代词(谁)+量词(多少)+定位介词(在哪里)

代词

指代一个特定字符(也就是找谁) (限定一个字符的范围)

常用代词如下:(在正则表达式当^表达就是非的意思)

代词作用
\d0-9的数字
\D0-9的非数字
\w匹配[_0-9a-zA-Z]中包括下划线的单词字符(和[Z-Az-a9-0]是等价的)
\W匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘。
\s空格
\S非空格
\n匹配一个换行符
\f匹配一个换页符
\r匹配一个回车符
x|y匹配x或者y 例如:‘z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
.任意字符(除了\n以外)
[xyz]字符集,用来匹配其中的任意一个单词。例如:[abc]可以匹配”apple“中的a
[^xyz]负值字符集,用来匹配其中未包含的字符。例如:[abc]可以匹配"apple"中的p
[x-y]字符范围。例如:[a-z]可以匹配a-z的所有小写字母
[^x-y]负值字符范围。跟上面反着来。
量词

通俗解释就是衡量有多少个代词

量词意义
*匹配前面的子表达式>=0次 例如:zo* 能匹配 “z” 以及 “zoo”。 * 等价于{0,}。
+匹配前面的子表达式>=1次 例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
匹配前面的子表达式1次或者0次 例如:“do(es)?” 可以匹配 “do” 或 “does” 中的"do" 。? 等价于 {0,1}。
{n}匹配n次 (n为非负数) 例如:‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,}匹配至少n次 例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如 “o{1,3}” 将匹配 “fooooood” 中的前三个 o。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。

“{m,n}”、“{m,}”、“?”、“*”和“+”之类的都算做是贪婪模式的量词

而在他们后面跟上一个"?" 就算做非贪婪模式的量词

贪婪模式和非贪婪模式的区别
定位词

通俗来讲就是这玩意儿在哪

定位词意义
^匹配行首(字符串开始的位置)
$匹配行尾(字符串结束的位置)
\b匹配单词边界 例如:er\b 就可以匹配beer后面的er 但是不能匹配very中的er
\B匹配非单词边界 用法和上面相反
选择器

用来捕获匹配字符串(或者组合多种模式进行匹配)

(pattern):匹配pattern 并捕获这个字符串

(?:pattern):匹配pattern 但是不捕获这个结果

(?=pattern):正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

例如, ‘Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000” 中的 “Windows” ,但不能匹配 “Windows 3.1” 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!pattern):负向预查,在任何不匹配的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1” 中的 “Windows”,但不能匹配 “Windows 2000” 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gToDwYRm-1638531982769)(C:\Users\84305\AppData\Roaming\Typora\typora-user-images\image-20211127195354989.png)]

反向引用

: 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\’ 匹配 “” 而 “(” 则匹配 “(”。

二义性符号^:在代词里是非 在定位词里是行首

二义性符号?:在代词后面表示量词 在量词后面表示非贪婪 在选择器中表示非捕获

简单的写法以及示例

/abcde?fg/

对于这个正则表达式 我们会发现 出了"e"以外 所有的代词都没有量词 也就是说除了e要匹配一次或者两次外 其他单词都要进行精准匹配

匹配结果:abcdefg 或abcdfg

abcdefg[1-9]{3}

这里匹配的就是在abcdefg后面跟上三个数字

例如:abcdefg123

/\bHel/

匹配Hello 但是不匹配oHell等等

/llo\b/

匹配Hello 但是不匹配 Helloy等等

UTF-8的编码规则

使用1-4个字节来存储一个字符,最大的特点是可变长度。
编码规则:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
——————–+———————————————
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx (可填11位unicode码)
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx (可填16位unicode码)
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx (可填21位unicode码)

以“二”(100111010001100)为例,二的unicode编码为4e8c,二进制对应为0100 111010 001100

依上表可知“二”在UTF-8编码中为三个字节
使用格式1110xxxx 10xxxxxx 10xxxxxx,从最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了
11100100 10111010 10001100(红色加粗为补0)
即十六进制为“E4BA8C”,这个编码即为“二”的UTF-8编码

再例如:将”中“字转换为utf8编码

中的unicode编码为4e2d 二进制对应为0100111000101101

中为三字节,格式为1110xxxx 10xxxxxx 10xxxxxx

则utf-8编码为:11100100 10111000 10101101

为E4B8AD

HTML前端基础

HTML超文本标记语言

超文本:包括图片 链接等等不仅限于文字的网页

标记:

CSS 层级链式表 (做网页样式的)

url的组成部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gaBGcc46-1638531982774)(C:\Users\84305\AppData\Roaming\Typora\typora-user-images\image-20211127115820476.png)]

网页的基本概念

标签

网页的 HTML 代码由许许多多不同的标签(tag)构成。学习 HTML 语言,就是学习各种标签的用法。

下面就是标签的一个例子。

<title>网页标题</title>

上面代码中,<title></title>就是一对标签。

标签用来告诉浏览器,如何处理这段代码。标签的内容就是浏览器所要渲染的、展示在网页上的内容。

标签放在一对尖括号里面(比如<title>),大多数标签都是成对出现的,分成开始标签和结束标签,结束标签在标签名之前加斜杠(比如</title>)。但是,也有一些标签不是成对使用,而是只有开始标签,没有结束标签,比如上一节示例的<meta>标签。

<meta charset="utf-8">

上面代码中,<meta>标签就没有结束标签</meta>

这种单独使用的标签,通常是因为标签本身就足够完成功能了,不需要标签之间的内容。实际应用中,它们主要用来提示浏览器,做一些特别处理。

标签可以嵌套。

<div><p>hello world</p></div>

上面代码中,<div>标签内部包含了一个<p>标签。

嵌套时,必须保证正确的闭合顺序,不能跨层嵌套,否则会出现意想不到的渲染结果。

<div><p>hello world</div></p>

上面代码就是错误的嵌套,闭合顺序不正确。

HTML 标签名是大小写不敏感,比如<title><TITLE>是同一个标签。不过,一般习惯都是使用小写。

另外,HTML 语言忽略缩进和换行。下面几种写法的渲染结果是一样的。

<title>网页标题</title>

<title>
  网页标题
</title>

<title>网页
标题</title>

进一步说,整个网页的 HTML 代码完全可以写成一行,浏览器照样解析,结果完全一样。所以,正式发布网页之前,开发者有时会把源码压缩成一行,以减少传输的字节数。

各种网页的样式效果,比如内容的缩进和换行,主要靠 CSS 来实现。

元素

浏览器渲染网页时,会把 HTML 源码解析成一个标签树,每个标签都是树的一个节点(node)。这种节点就称为网页元素(element)。所以,“标签”和“元素”基本上是同义词,只是使用的场合不一样:标签是从源码角度来看,元素是从编程角度来看,比如<p>标签对应网页的p元素。

嵌套的标签就构成了网页元素的层级关系。

<div><p>hello world</p></div>

上面代码中,div元素内部包含了一个p元素。上层元素又称为“父元素”,下层元素又称为“子元素”,即divp的父元素,pdiv的子元素。

块级元素,行内元素

所有元素可以分成两大类:块级元素(block)和行内元素(inline)。

块级元素默认占据一个独立的区域,在网页上会自动另起一行,占据 100% 的宽度。

<p>hello</p>
<p>world</p>

上面代码中,p元素是块级元素,因此浏览器会将内容分成两行显示。

行内元素默认与其他元素在同一行,不产生换行。比如,span就是行内元素,通常用来为某些文字指定特别的样式。

<span>hello</span>
<span>world</span>

上面代码中,span元素是行内元素,因此浏览器会将两行内容放在一行显示。

属性

属性(attribute)是标签的额外信息,使用空格与标签名和其他属性分隔。

<img src="demo.jpg" width="500">

上面代码中,<img>标签有两个属性:srcwidth

属性可以用等号指定属性值,比如上例的demo.jpg就是src的属性值。属性值一般放在双引号里面,这不是必需的,但推荐总是使用双引号。

注意,属性名是大小写不敏感的,onclickonClick是同一个属性。

HTML 提供大量属性,用来定制标签的行为,详细介绍请看《元素的属性》一章。

标签类型

编码:ascii->unicode(包含汉字等所有文字的编码 不可变长 导致资源浪费)

->utf8编码(一般汉字占3字节)

unicode的编码规则

标签可以嵌套:比如说div里面套其他的

前端基础:
在这里插入图片描述

名词解释:lang=‘en’ 就是语言类型为英语

charset=‘utf-8’ 也就是编码类型为utf-8

前端需要多端适应–响应式 也就是在手机 电脑上都要自适应–bootstrap框架

content就是响应式

title 网页名称
在这里插入图片描述

在body中(网页主内容) 我们可以插入如下内容;

H1-H6标签

在这里插入图片描述

H1-H6就是由大到小

crtl+?可以快速注释掉一段代码

P标签

块标签 在前端中 分为两种元素:行级元素和块级元素

块级元素的属性为独占一行
在这里插入图片描述

那么如图所示的代码 就会得到两行显示的效果
在这里插入图片描述

Span标签

也就是行标签 行标签是不独占一行的

在这里插入图片描述

a标签

超链接标签 跳转网页的

在这里插入图片描述

其中:

href :后面跟的是要去的链接地址 注意 不能忘记写域名中的协议

target :为这个超链接的打开方式 其中_blank为新窗口打开 _self是原窗口打开 起的是su的作用(即网络优化)

Img标签

图片标签 用来放图片的的

在这里插入图片描述

src:图片的目录地址 这里既可以是相对路径也可以是绝对路径 相对路径的语法与linux系统相同 .代表同级目录 …代表上级目录
alt:后面的内容是提示 用于标记这张图片 (实际上就是图片名称)

在这里插入图片描述

当然 这里图片的长宽也是可以设置的
在这里插入图片描述

width是宽 height是长

在这里插入图片描述在这里插入图片描述

hr标签

分割标签
在这里插入图片描述在这里插入图片描述
一般不用 通常会用自己做的图片来做分割

br标签

换行标签

(实际上是一种空标签)

font标签

用于规定文本的大小 字体 颜色等等

在这里插入图片描述
在这里插入图片描述

strong标签

强调标签 =加粗

scripit

在这里插入图片描述

关闭浏览器防护

三元运算符的规则 如果第一个为真 那么就要第一个;为假就要第二个
在这里插入图片描述

同源策略

什么是同源? cors csp(跨域浏览器防御策略)

CSP看阮一峰的 csp就是为了防御xss产生的

链接: http://www.ruanyifeng.com/blog/2016/09/csp.html.

协议 主机 端口要一致
在这里插入图片描述

标签:总结,字符,匹配,编码,标签,元素,网安,网页,日志
来源: https://blog.csdn.net/qq_41819426/article/details/121705830