Web安全基础

Web简介:

Web 即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

万维网常被当成因特网的同义词,但万维网与因特网有着本质的差别。因特网(internet)指的是一个硬件的网络,全球的所有电脑通过网络连接后便形成了因特网。而万维网更倾向于一种浏览网页的功能。

互联网包含因特网,因特网包含万维网,即:互联网 > 因特网 > 万维网。

01静态页面和动态页面

静态页面:在静态html页面中,用户通过web浏览器HTTP协议向web服务器发送一个响应请求,告诉web服务器要浏览这个网站的哪个页面,接着根据用户的响应请求返回一个html页面给用户,经过浏览器渲染解析呈现在用户眼前。

静态web页面是没有数据库文件的,所以不能连接网络数据库;

静态web页面主要是通过html代码开发设计的;

部分静态web页面为了页面的好看,使用了大量的JS代码,导致静态web页面打开速度慢。

动态页面:在动态web页面中,依然要通过web服务器的html协议或https协议响应才能返回结果给用户,用户所有请求都必须要通过web服务器处理才能实现。

用户的响应请求是一个静态的html页面,只需要响应请求web服务器从系统中调出用户响应的内容,将内容返回给客户端浏览器进行处理,再返回给用户。

如果用户响应请求的是动态页面资源,例如.jsp/.asp/.aspx、/.php等,响应步骤是先将用户请求发送给web服务器,web服务器再从数据库调出有用户请求的数据,调出数据后将所需要展示给用户的内容发送给服务器,最后通过web服务器将需要展示给用户的内容返回给用户浏览器解析执行,展示给用户。

Web 1.0和web 2.0的本质区别

两者的本质区别在于:web1.0主要在于用户通过浏览器获取信息;Web2.0则更注重用户的交互作用。

 

URL

统一资源定位符,俗称网页地址或简称网址,是因特网上标准的资源地址,如同在网络上的门牌。已经被万维网联盟编制为因特网标准RFC 1738

URL组成:协议+主机+端口+路径+参数

常见端口:HTTP:80  HTTPS:443  MySQL:3306

HTML基础

超文本标记语言  -- html

HTML元素(标签)

<p>这是一个段落。</p>

HTML标签简介

<!DOCTYPE html>  声明为HTML5文档

<html> 元素是HTML页面的根元素

<head> 元素包含了文档的元(meta)数据,如<meta charset=“utf-8”>定义网页编码格式为utf-8

<title> 元素描述了文档的标题

<body> 元素包含了可见的页面内容

<h1> 元素定义了一个大标题

<p>元素定义一个段落

注:在浏览器的页面上使用键盘上的F12按键开启调试模式,就可以看到组成标签。

HTML-段落

HTML段落是通过标签<p>来定义的,

<p>这是一个段落

<这是另一个段落>

HTML-链接

HTML链接是通过标签<a>来定义的

标签的href属性用于指定超链接目标的URL。在href属性中指定链接的地址。

HTML-图像

HTML图像是通过标签<img>来定义的

HTML-水平线

<hr>标签在HTML页面中创建水平线;Hr元素可用于分割内容。

HTML-注释

可以将注释插入HTML代码中,这样可以提高其可读性,使代码更容易被人理解

HTML-换行

如果我们希望在不产生一个新段落的情况下进行换行(新行),请使用<br>标签;

<p>这个<br>段落<br>演示了分行的效果</p>

HTTP

什么是HTTP?

超文本传输协议(HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。当时选择使用HTTP协议,是因为它使开发和部署非常地直截了当。

 

如何访问web应用?

  1. 在浏览器地址栏键入URL访问
  2. 浏览器向DNS(域名解析)服务器请求解析该URL中的域名所对应的IP地址。
  3. 解析出IP地址后,根据该IP地址和默认80端口跟服务器建立TCP连接
  4. 浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器
  5. 服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器
  6. 浏览器将该html文本进行解析并显示内容。

HTTP协议的内部操作过程

HTTP定义的事务处理由以下四步组成:

①客户端与服务器建立连接

②客户端向服务器端发送请求

③服务器端向客户端回复响应

④断开

HTTP/1.0和HTTP/1.1协议的区别

HTTP1.1版本发布比HTTP/1.0晚了半年,这个版本最大的变化就是持久化连接加入了HTTP标准,即TCP连接默认不关闭,可以被多个请求复用。此外,HTTP/1.1版还新增了很多方法,例如:PUT、CONNECT、HEAD、OPTIONS、DELETE。得到进一步完善的HTTP/1.1版本,一直沿用至今。

HTTP-请求方法

方法(操作)

含义

GET

请求获取Request-URL(请求地址)所标识的资源。(请求读取由URL所标志的信息)

POST

在Request-URL所标识的资源后附加新的数据。(给服务器添加信息,例如注释)

HEAD

请求获取由Request-URL所标识的资源的响应消息报头。

PUT

请求服务器存储一个资源,并用Request-URL作为其标识。

DELETE

请求服务器删除Request-URL所标识的资源。

TRACE

请求服务器回送收到的请求信息,主要用于测试或诊断。

CONNECT

用于代理服务器。

OPTIONS

请求查询服务器的性能,或者查询与资源相关(特定)的选项和需求。

GET和POST的区别

原理区别

URL全称是资源描述符,一个URL地址用于描述一个网络上的资源,HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。

GET一般用于获取/查询资源信息;POST一般用于更新资源信息。

GET用于信息获取时应该是安全的,幂等的。

安全:该操作用于获取信息而非修改信息,它仅仅是获取资源信息,就像数据库查询一样,不会修改/增加数据,不会影响资源的状态。

幂等:对同一URL的多个请求应该返回同样的结果。

POST表示可能修改服务器上的资源的请求。

HTTP协议的主要特点

1.支持客户/服务器模式:一个服务器可以为分布在世界各地的许多客户服务。

2.简单快捷:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET和POST。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

请求首部

描述

Accept

指定客户端接受信息的类型(MIME类型)

Connection

允许C/S指定与请求/响应连接的有关选项

Host

请求的服务器的主机名和端口号

Referer

包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

Use-Agent

发起请求的应用程序名称

Accept-Encoding

告诉服务器能够接受哪些内容编码方式

Content-Length

表示请求消息正文的长度

Cookie

客户端提供给服务器的认证数据

HTTP请求头 - Cookie

HTTP Cookie:

Cookie通常也叫做网站Cookie,浏览器Cookie或者httpCookie,是保存在用户浏览器端的,并在发出http请求时会,默认携带的一段文本片段。它可以用来做用户认证,服务器校验等通过文本数据可以处理的问题。

HTTP请求头 - Referer

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

500

服务器内部错误

服务器遇到错误,无法完成请求。

501

尚未实施

服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

502

错误网关

服务器作为网关或代理,从上游服务器收到无效响应。

503

服务不可用

服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504

网关超时

服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505

HTTP 版本不受支持

服务器不支持请求中所用的 HTTP 协议版本。

HTTP的缺陷

由于HTTP协议的简单特性,且不保存客户端的状态,不进行验证客户端是否是真实存在,传输使用的是明文传输,故也很具有缺点。

①通信双方使用明文传输(不加密),内容可能会被窃听。

②不验证通信方的身份,因此可能遭遇伪装。

③无法证明报文的完整性,所以有可能已遭篡改。

在这几个缺点的基础上为了防止这些问题的发生,出现了HTTPS

HTTPS协议基础

  1. 什么是HTTPS

HTTPS是在HTTP上简历SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

  1. HTTPS主要作用:

①对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;

②对网站服务器进行真实身份认证。

默认HTTP的端口号为80,HTTPS的端口号为443。

HTTP和HTTPS两者的区别

本质:明文和加密

信任主机的问题:采用https的server必须从CA申请一个用于证明服务器用途类型的证书,改证书只有用于对应的server的时候,客户端才信任该主机。

为什么需要加密:①防止中间人攻击 ②防钓鱼

BURP(代理服务器)--- 中间商”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/105579.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IBM Spectrum LSF License Scheduler

LSF License Scheduler 提供了两个版本: Basic Edition 和 Standard Edition。 LSF License Scheduler Basic Edition 随附于 LSF Standard Edition 和 Advanced Edition &#xff0c;并非旨在应用有关如何在集群或项目之间共享许可证的策略。 相反&#xff0c; LSF License S…

基于秃鹰算法优化的BP神经网络(预测应用) - 附代码

基于秃鹰算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于秃鹰算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.秃鹰优化BP神经网络2.1 BP神经网络参数设置2.2 秃鹰算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

学习pytorch5 常用的transforms

常用的transforms 1. ToTensor()2. Normalize() 1. ToTensor() 2. Normalize() # 1. ToTensor 把PIL图片类型数据或ndarry numpy数据类型转换为tensor类型数据 from cv2 import imread from torchvision import transforms from torch.utils.tensorboard import SummaryWrit…

vue3范围选择组件封装

个人项目地址&#xff1a; SubTopH前端开发个人站 &#xff08;自己开发的前端功能和UI组件&#xff0c;一些有趣的小功能&#xff0c;感兴趣的伙伴可以访问&#xff0c;欢迎提出更好的想法&#xff0c;私信沟通&#xff0c;网站属于静态页面&#xff09; SubTopH前端开发个人站…

leetcode 1035. 不相交的线

2023.8.25 本题可以转化为&#xff1a;求两数组的最长公共子序列。 进而可以用dp算法解决。 方法类似于这题最长公共子序列 。 代码如下&#xff1a; class Solution { public:int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {vector<…

pytorch 实现VGG

VGG全称是Visual Geometry Group&#xff0c;因为是由Oxford的Visual Geometry Group提出的。AlexNet问世之后&#xff0c;很多学者通过改进AlexNet的网络结构来提高自己的准确率&#xff0c;主要有两个方向&#xff1a;小卷积核和多尺度。而VGG的作者们则选择了另外一个方向&a…

VSCode 如何解决 scanf 的输入问题——Code is already running!

文章如何使用 VSCode 软件运行C代码中已经介绍了如何在 VSCode 软件中运行C代码&#xff0c;但最近在使用 scanf 想从键盘输入时&#xff0c;运行代码后显示“Code is already running!”&#xff0c;如下图所示&#xff0c;在输出窗口是无法通过键盘输入的。 解决办法如下&am…

如何解决“缺失msvcp110.dll”错误,msvcp110.dll丢失要怎样才能修复

今天&#xff0c;我将为大家分享关于电脑提示msvcp110.dll丢失的3种修复方法。希望这些方法能帮助到正在遇到这个问题的朋友们。 首先&#xff0c;我们来了解一下msvcp110.dll文件的作用。msvcp110.dll是Microsoft Visual C 2010 Redistributable Package的一部分&#xff0c;…

uniapp结合Canvas+renderjs根据经纬度绘制轨迹(二)

uniapp结合Canvasrenderjs根据经纬度绘制轨迹 文章目录 uniapp结合Canvasrenderjs根据经纬度绘制轨迹效果图templaterenderjsjs数据结构 ​ 根据官方建议要想在 app-vue 流畅使用 Canvas 动画&#xff0c;需要使用 renderjs 技术&#xff0c;把操作canvas的js逻辑放到视图层运…

【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

注解和class对象和mysql

注解 override 通常是用在方法上的注解表示该方法是有重写的 interface 表示一个注解类 比如 public interface override{} 这就表示是override是一个注解类 target 修饰注解的注解表示元注解 deprecated 修饰某个元素表示该元素已经过时了 1.不代表该元素不能用了&…

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 目录 数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成&#xff1b; 2.马尔科夫链蒙特卡洛方…

封装公共el-form表单(记录)

1.公共表单组件 //commonForm.vue <script> import {TEXT,SELECT,PASSWORD,TEXTAREA,RADIO,DATE_PICKER } from /conf/uiTypes import { deepClone } from /utils export default {name: GFormCreator,props: {config: { // title/itemstype: Object,required: true}}…

Mybatis的综合案例-学生信息查询系统 用于校验是否真正学习掌握了动态SQL

Mybatis的综合案例-学生信息查询系统 需求一&#xff1a;当用户输入的学生姓名不为空&#xff0c;则只根据学生信息进行查询; 当用户输入的学生姓名为空&#xff0c;且专业不为空&#xff0c;那么就根据学生专业进行学生的查询 需求二&#xff1a;查询所有id值小于5的学生信息…

List Label Standard Reporting Edition Crack

List & Label Standard Reporting Edition Crack List&Label是适用于所有主要开发平台的报告解决方案&#xff0c;提供了强大的报告引擎、灵活的API和功能丰富的报告设计器。只需要几行代码就可以在桌面、web或云应用程序中嵌入List&Label。它允许您的应用程序用户…

代码随想录训练营二刷第三天 | 203.移除链表元素 707.设计链表 206.反转链表

代码随想录训练营二刷第三天 | 203.移除链表元素 707.设计链表 206.反转链表 一、203.移除链表元素 题目链接&#xff1a;https://leetcode.cn/problems/remove-linked-list-elements/ 思路&#xff1a;使用虚拟头结点&#xff0c;两个指针&#xff0c;一个是遍历指针&#x…

天眼查接口 查询企业信息API 企查查接口

item_get-获得tyc详情 tyc.item_get 公共参数 请求地址: https://api-gw.cn/tyc/item_get 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff0…

Vue快速入门以及基础标签使用

目录 开始示例el挂载点data数据对象 vue基本标签v-textv-htmlv-on计数器示例实现v-showv-ifv-bind图片切换示例v-forv-on补充v-model axios网络请求axios基本使用vue中使用axios 开始示例 1.首先在html页面中引入vue的生产环境&#xff0c;在body标签中粘上下面代码 <scrip…

微客云直充卡券优惠话费充值接口开发稳定高效

微客云直充卡券话费 开发团队致力于此模块生命力至少3-5年 此模块以资源种类&#xff0c;官方直联接口为优势&#xff0c;不纯以软件更新为主&#xff0c;力争版本精准化服务用户 单独直充卡券话费系统&#xff0c;直接完成对各种消费场景的流量变现&#xff0c;更加开放与链路…

TCP--半连接队列和全连接队列

原文地址&#xff1a;https://plantegg.github.io/2020/04/07/%E5%B0%B1%E6%98%AF%E8%A6%81%E4%BD%A0%E6%87%82TCP–%E5%8D%8A%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97%E5%92%8C%E5%85%A8%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97–%E9%98%BF%E9%87%8C%E6%8A%80%E6%9C%AF%E5%85%AC%E…