【网络安全的神秘世界】HTML基础入门

   日期:2024-12-26    作者:xlru0 移动:http://3jjewl.riyuangf.com/mobile/quote/36261.html

🌝博客主页:泥菩萨

💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具

web

web(world wide web)即全球广域网,也称万维网

我们常说的就是网页端

网页

是构成网站的基本元素,网页主要由文字、图像和超链接等元素构成

我们在浏览器上输入网址后,打开的任何一个页面,都属于网页

浏览器

是网页运行的平台,常见的浏览器有谷歌(Chrome)、Safari、火狐(Firefox)、IE、Edge、Opera等

W3C组织

w3c:world wide web consortium,万维网联盟组织,用来制定web标准的组织

w3c万维网联盟是国际最著名的标准化组织

为什么要遵循web标准呢?因为很多浏览器的内核不同,导致页面解析出来的效果可能会有差异,给开发者增加无谓的工作量,因此需要指定统一的标准

web标准

web标准:制作网页要遵循的规范

web标准不是某一个标准,而是由w3c组织和其他标准化组织制定的一系列标准的集合

1、web标准包含三个方面

  • 结构标准(HTML:用于对网页元素进行整理和分类
  • 表现标准(CSS:用于设置网页元素的版式、颜色、大小等外观样式
  • 行为标准(JS:用于定义网页的交互和行为

根据上面的web标准,可以将web前端分为三层,如下

2、web前端分三层

  • HTML:超文本标记语言,从语义的角度描述页面的结构。相当于人的身体组织结构
  • CSS:层叠样式表,从审美的角度美化页面的样式。相当于人的衣服和打扮
  • JS:javascript,从交互的角度描述页面的行为。相当于人的动作,让人有生命力

[!CAUTION]

css不存在安全漏洞,所以我们不关注

浏览器分成两部分

  • 1、渲染引擎(即:浏览器内核
  • 2、JS引擎

1、渲染引擎(浏览器内核

浏览器所采用的「渲染引擎」也称之为「浏览器内核」,用来解析html和css。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息

渲染引擎是浏览器兼容性出现问题的根本原因

渲染引擎的英文叫做Rendering Engine。通俗来说,它的作用就是:读取网页内容,计算网页的显示方式并显示在页面上

常见的浏览器内核如下

浏览器内核chromeBlink欧鹏Blink360安全浏览器Blink360极速浏览器BlinkSafariWebkitFirefox火狐GeckoIETrident

备注:360的浏览器,以前使用的IE浏览器的Trident内核,但是现在已经改为使用 chrome 浏览器的 Blink内核

另外,移动端的浏览器内核是什么?大家可以自行查阅资料。

 

2、JS引擎

也称为JS解释器。用来解析网页中的JavaScript代码,对其处理后再运行

浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎来执行JS代码。JS引擎执行代码时会逐行解释每一句源码(转换为机器语言,然后由计算机去执行。所以JavaScript语言归为脚本语言,会逐行解释执行

常见浏览器的JS引擎如下

浏览器JS引擎chrome / 欧鹏V8SafariNitroFirefox火狐SpiderMonkey(1.0-3.0)/ TraceMonkey(3.5-3.6)/ JaegerMonkey(4.0-)OperaLinear A(4.0-6.1)/ Linear B(7.0-9.2)/ Futhark (9.5-10.2)/ Carakan(10.5-)IETrident

HTML的概念

超文本标记语言

HTML不是一种编程语言,是一种描述性的标记语言

作用 html是负责描述文档语义的语言

概念:超文本

所谓的超文本,有两层含义

(1)图片、音频、视频、动画、多媒体等内容,称为超文本,因为它们超出了文本的限制

(2)从一个文件跳转到另一个文件,与世界各地主机的文件进行连接。即:超链接文本

概念:标记语言

HTML不是一种编程语言,是一种描述性的标记语言。这主要有两层含义

(1标记语言是一套标记标签。比如:标签表示超链接,属于html标签

(2)编程语言有编辑过程,而标记语言没有编译过程,html标签是直接由浏览器解析执行

HTML是负责描述文档语义的语言

HTMI格式的文件是一个纯文本文件(就是用txt文件改名而成,用一些标签来描述语义,这些标签在浏览器页面上是无法直观看到的,所以称之为“超文本标记语言”

  • 网页:由各种标记组成的一个页面
  • 首页:一个网站的起始页面或导航页面,通常命名为index.html
  • 标记:也叫标签,每个标签都规定好了特殊的含义。比如
  • 元素:内容
  • 属性:每个标签的辅助信息
  • XHTML:符合xml语法标准的html
  • DHTML:动态网页, 结合起来的页面
  • HTTP:超文本传输协议,规定客户端浏览器和服务端交互时数据的格式
  • SMTP:邮件传输协议
  • FTP:文件传输协议

vscode执行代码需要放在文件夹下

输入,自动生成html框架,在中书写内容

 
 

双标记:标签成对出现

单标记:单标签

属性与标记之间、各属性之间用空格分开,属性值用双引号括起来

html骨架标签分类

标签名定义说明html标签页面中最大的标签,称为根标签文档的头部在head标签中我们必须要设置title标签文档的标题让页面拥有一个属于自己的网页标题文档的主体页面内容放到body里面

1、文档声明头

以开头的语句,简称DTD

DTD可告知浏览器文档使用哪种HTML或XHTML规范

2、页面语言lang

下面这行标签,用于指定页面的语言类型

 

最常见的语言类型有两种

  • en:定义页面语言为英语
  • zh-CN:定义页面语言为中文

3、头标签head

 

面试题

  • :网页的head标签里面,表示的是页面的配置,有什么配置
  • 字符集、关键词、页面描述、页面标题、IE适配、视口、ipone小图标等

头标签内部的常见标签如下

  • :指定整个网页的标题,在浏览器最上方显示
  • :为页面上的所有链接规定默认地址或默认目标
  • :提供给有关页面的基本信息
  • :定义文档与外部资源的关系

meta标签

meta表示“元”,“元”配置,就是表示基本的配置项目

常见的几种meta标签如下

(1)字符集charset

 

(2)视图窗口viewport

 

(3)定义“关键词”

 

(4)定义“页面描述”

 

base标签

 

base 标签用于指定基础的路径。指定之后,所有的a链接都是以这个路径为基准

4、body标签

:用于定义HTML文档所要显示的内容,也称为主体标签。我们所写的代码必须放在此标签内。

标签的属性有:

  • bgcolor:设置整个网页的背景颜色
  • background:设置整个网页的背景图片
  • text:设置网页中的文本颜色
  • leftmargin:网页的左边距。IE浏览器默认是8个像素
  • topmargin:网页的上边距
  • rightmargin:网页的右边距
  • bottommargin:网页的下边距

黑帽SEO

攻击者在网页插入恶意的标签,浏览器的搜索引擎会解析源代码,用户在访问正常的浏览器站点的同时也会访问暗链,因此来提升恶意网站的搜索排名

 

——暗链

危害

对业务本身没有影响,但会被上级监管单位检测到,如果不及时处理这个业务站点必须下架

如何防护

  • 安全产品:网页防篡改
  • 漏洞扫描
  • WAF:应用防火墙

解决方法

删除恶意标签

 

——钓鱼

 

——钓鱼


计算机只能处理二进制的数据

ASCII码 美国发布的,1个字节(8位)表示1个字符,共可以表示2^8=256个字符

ANSI编码 ASCII码的扩展,用2个字节(16位)表示一个汉字,共可以表示2^16=65536个汉字

中国的ANSI编码是GB2312

日本的ANSI编码是JIS编码

台湾的ANSI编码是BIG5编码

GBK 对GB2312的扩展

Unicode编码(统一编码 用4个字节表示一个字符,实际上不需要那么多字符,会造成空间的极大浪费

UTF-8 根据字符的不同,选择其编码的长度

中文能够使用的字符集有两种

  • UTF-8
  • GBK

重点1:避免乱码

我们用标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样

重点2:UTF-8和GB2312的比较

保存大小:UTF-8(更臃肿,加载更慢)> GB23122(更小巧,加载更快

总结

  • UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿
  • GB2312:字少,只有中文和少数外语和符号,但是尺寸小,文件小巧

标题使用至标签进行定义

为最大标题,为最小标题

HTML注释的格式如下

 
 

可以把html文档分割成若干段落

属性

  • :对齐方式。属性值包括left、center、right

HTML标签是分等级的,HTML将所有的标签分为两种

  • 文本级标签 p、span、a、b、i、u、em
    文本级标签里只能放文字、图片、表单元素(a标签不能放a和input
  • 容器级标签:div、h系列、li、dt、dd。容器级标签里可以放置任何东西。

水平分割线,可以在视觉上将文档分割成各个部分

如果希望某段文本强制换行显示,就需要使用换行标签

1、前端页面没有办法显示想要的符号

2、HTML和JS代码出现符号混用,可能会造成安全漏洞

XSS(跨站脚本攻击

如果网站本身没有进行实体编码,也没有对用户输入的特殊字符进行转义的话,那么用户输入什么代码都会被浏览器渲染,从而达到攻击的效果

攻击可以通过如下代码进行弹窗

 

通过实体编码进行转义,过滤安全漏洞后,代码如下

 
 

超链接有外部链接和邮件链接

1、外部链接:链接到外部文件

 

2、邮件链接

 

超链接的属性

属性含义href目标urltitle悬停文本name用于设置一个锚点的名称target告诉浏览器用什么方式来打开目标页面

target属性有以下几个值

值含义_self在同一个网页中显示(默认)_blank在新的窗口中打开_parent在父窗口中显示_top在顶级窗口中显示

title属性举例

 

效果如下

备注1:分清楚img和a标签的各自的属性

区别如下

 
备注2:a是一个文本级的标签

正常情况:此时只有文字部分能够被点击

 

不正常情况:文字整段空白部分也能被点击,不符合开发效果

 
 
 

介绍

img:英文全称image(图像,代表的是图片

如果要想在网页中显示图像,就可以使用img标签,它是一个单标签,语法如下

 

能插入的图片类型

  • 能够插入的图片类型是:jpg(jpeg)、gif、png、bmp等
  • 不能往网页中插入的图片格式是:psd、ai等

HTML页面不是直接插入图片,而是插入图片的引用地址,所以要先把图片上传到服务器上

src:指图片的路径

再写图片的路径,有两种写法:相对路径、绝对路径

写法一:相对路径

相对当前页面所在的路径,和分别代表当前目录和上一层目录

 
 

写法二:绝对路径

从根目录开始表示文件位置

width、height属性

单位可以是像素(px),也可以是百分比(%

重要提示 只设置windth和height其中一个值,就可以保证图片等比例缩放

alt属性

当图片不可用的时候,代替图片显示的内容

title属性

提示性文本。鼠标悬停时提示的文本

  • 列表标签:、、
  • 表格标签
  • 表单标签

1、无序列表,里面的每一项是

 

也可以嵌套使用

 

2、有序列表,里面的每一项是

 

属性

  • ,属性值可以是:1(默认)、a、A、i、I
  • 属性表示从几开始

3、定义列表

没有属性,dl的子元素只能是dt和dd

  • dt:列表标题
  • dd:列表项

备注:dd是描述dt的

 
 

表格标签用表示,一个表格是由每行组成的,每行是由每个单元格组成的。

例如,一行的单元格``

 

属性

  • :边框,单位为px
  • :表格的边框颜色
  • :宽度
  • :高度

表单标签用表示,用于与服务器的交互。表单就是收集用户信息的

属性

  • :表单的名称,用于JS来操作或控制表单时使用
  • :表单的唯一标识,方便对表单进行操作
  • :指定表单数据的处理程序,一般是PHP,如:action=“login.php”
  • :表单数据的提交方式,一般取值:get(默认)、post

注意:表单和表格嵌套时,是在标记中套标记

get提交和post提交区别

  • get:参数和参数的值会在url中显示,不安全

    显示内容如下
    https://127.0.0.1?admin=li&password=123

  • post:不会显示在url中,安全

:输入标签(文本框

 
 

属性

  • :文本框里的默认内容(已经被填好了的

  • :文本框只读,不能编辑

  • :文本类型

    属性值可以是

    属性值含义text(默认)密码会明文显示password密码类型,密文radio单选按钮checkbox多选按钮
    name属性值相同的按钮作为一组进行选择checked当时
    属性值为checked,默认处于选中状态button普通按钮submit提交按钮reset重置按钮file文件选择框

:多行文本输入框

text就是”文本“,area就是”区域“

 
 

属性

  • :指定文本区域行数
  • :指定文本区域列数
  • :只读

:为input定义标注

我们先来看下面一段代码

 

对于上面这样的单选框,我们只能点击那个小圆圈才可以选中,点击”男“、”女“这两个文字选不中,于是,label标签派上了用场

本质上来讲,”男“、”女“这两个文字和input标签是没有关系的,而label就是解决这个问题的。我们可以把input和汉字包裹起来作为整体

解决方法如下

 

让label标签的for属性值,和input标签的id属性值相同,那么这个label和input就有绑定关系了

当然了,复选框也有label(任何表单元素都有label


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号