ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网安总结日志(1)

2021-12-03 19:59:37  阅读:126  来源: 互联网

标签:总结 字符 匹配 编码 标签 元素 网安 网页 日志


网安笔记

正则表达式

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有