1.什么是web
2.web发展
3.web的工作流程
4.浏览器的工作流程
5.服务器是如何被入侵的
6.HTTP协议(一部分)
1.什么是web?
world wide web 多么熟悉的www,又叫万维网,是互联网上应用
2.web的发展
从web1.0到web2.0
web1.0
–形式:个人网站/门户站点
–特点:以浏览信息为主,不能进行修改,用户交互性差
–安全问题:SQL注入,上传漏洞等
–主要危害:web服务器
web2.0
–形式:微博,blog扥
–特点:用户交互性强 (正是我们现在处于的阶段)
–安全问题:XSS、CSRF等
–主要危害web用户
3.web的工作流程
(就像 餐馆吃饭,先向服务员说明菜品请求,然后服务员转告厨师,厨师做,满足客户需求)
用户想要访问一个站点,向浏览器发送请求,浏览器向服务器请求网站资源
服务器向浏览器返回网站资源信息,浏览器呈现页面给用户
4.浏览器的工作流程
1)浏览器通过用户输入的URL里的域名获取到web服务器的IP地址(DNS解析)
2)浏览器通过向DNS服务器发送请求,请求查询用户想要查询的网站的地址
3)DNS服务器处理完成请求后返回给浏览器域名对应的IP地址
2)浏览器通过解析到的web服务器的地址找到web服务器,向web服务器发送http请求,
3)web服务器处理完成后,web服务器向浏览器发送http响应
此时的http响应并不是用户看到的页面,而是通过HTML、JS、CSS将数据渲染成特定的页面展示给用户
5.服务器是如何被入侵的
攻击者想要对计算机进行渗透的前提是攻击者的计算机与服务器能够正常通信;
服务器是通过端口与客户端进行通信的,那么攻击者也是通过端口进行入侵的,
过去一般是直接对目标进行攻击,比如端口扫描,服务器密码的爆破(FTP/数据库)等攻击方式直接获取目标权限
如今直接对服务器进行溢出攻击的方式越来越少,因为系统的溢出漏洞太难挖掘了
于是..转战web战场
如今的web应该称之为web应用程序,功能非常强大
web强大的四个要点:数据库/编程语言/web容器/web应用程序设计者
要点之间的衔接:
设计人员设计个性化的应用程序,编程语言将其变成真实的存在,数据库进行连接,让数据库存储好这些数据而web容器负责的是作为终端解析用户请求和脚本语言等。当用户通过URL访问web时最终看到的是web容器处理之后的内容,也就是html文档
攻击者渗透服务器时,直接对目标下手一般有三个手段
(1. C段渗透–攻击者通过渗透同一网段内的一台主机对目标主机进行ARP等手段的渗透
(2. 社会工程学
(3. Services–很多传统的攻击方式是直接针对服务进行溢出的,至今一些软件还是存在溢出漏洞
6.HTTP协议
超文本传输协议(应用层协议)
详细规定了浏览器和万维网服务器之间互相通信的规则,web通信时使用的协议
是万维网交换信息的基础,允许将HTML文档从web服务器传送到web浏览器
–1)发起HTTP请求
①通过浏览器发送请求:
–在浏览器地址栏里输入URL
–概念:统一资源定位符,也是网页地址,是互联网标准的地址
–作用:定位服务器的资源
–格式:协议:服务器IP[:端口]/路径/[?查询][#锚]
[?查询]发送给http服务器的数据
[#锚]在页面的特定位置
HTTP协议端口默认80(可省略)
②Linux系统中的curl命令
③Windows系统中的curl.exe工具,通过指令curl+URL命令
(浏览器在http协议方面只不过多了HTML渲染的功能,让用户看到更直观的界面)
–2)HTTP协议详解
HTTP是一种无状态的协议,无状态是指web浏览器和web服务器之间
不需要建立持久的连接,意味着当浏览器发出请求,服务器返回响应
连接也就关闭了,在服务端不保留连接的有关信息,也就是说HTTP请求
只能由客户端发起,服务器不能主动向客户端发送数据。
HTTP遵循 请求/应答模型,web浏览器向web服务器发送请求时
web服务器处理请求并返回适当的应答
①HTTP请求
三部分:请求行/请求头/请求正文
–请求行:POST/login.php HTTP/1.1
组成部分:POST方法 /login.php说明请求的是该域名根目录下的login.php
HTTP/1.1 说明使用的是HTTP1.1版本
–请求头:HOST:www.xxser.com
User-Agent:…
HOST代表请求的主机地址,User-Agent代表浏览器的标识
请求头由客户端自行设定
–空白行: 代表请求头结束
–请求正文:请求正文是可选的,最常出现在POST请求方法中
②HTTP响应
三部分:响应行/响应头/响应正文
–响应行:HTTP1.1 200 ok
HTTP版本是1.1 200是状态码 消息是"ok"
–响应头:Date:Thu,28 Feb 2013 07:36:47 GMT
由服务器向客户端发送
–响应正文:也叫消息主题,是服务器向客户端发送的HTML数据
③HTTP请求方法
(1)GET
获取请求页面的指定信息(以实体的格式),如果请求的资源是动态脚本(非HTML)
那么返回的是web容器解析之后的HTML源代码,而不是源文件
GET /index.php?if=1 HTTP/1.1
HOST:www.xxser.com
使用GET请求index.php,并且id参数为1,在服务器脚本语言中可以选择性的接收这些参数
比如id=1&name=admin,一般是由开发者内定好的参数项目才会接收,
比如开发者只接收id参数项目,若加了其它参数项以&分隔,服务器不会理会加入的内容
还是会只接收id参数,去查询数据,最终向服务器端发送
解析过的HTML数据,不会因为干扰而乱套
(2)HEAD
除了服务器不能在响应里返回消息主体外,其它都与GET相同
用来测试超文本连接的有效性,可访问性以及最近的改变
只测试资源是否存在,而不用返回消息主题,速度是最快的
原文链接:https://blog.csdn.net/lsykysyyds/article/details/124518265
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18189