网站原理及漏洞可能产生处

  1. 网站访问原理

    例如访问 www.mayidui.net  你可以点击f12看一下

    大纲:
    1、用户访问网站流程框架
    2、DNS解析原理 *****
    3、tcp/ip三次握手原理 *****
    4、http协议原理(www服务的请求过程)请求报文细节!
    5、大规模网站集群架构细节。
    6、http协议原理(www服务的响应过程)响应报文细节!
    7、tcp/ip四次挥手过程原理 *****  断开链接

步骤:

    1. (1)用户输入URL

    2. (2)浏览器代为封装成符合http格式的Request请求,包含请求首行、请求头和请求体

    3. (3)Request请求是应用层数据,再由OS完成TCP、IP、MAC层封装,送到网卡处以比特流形式送送

    4. (4)经过网络传输,比特流到达服务器端,被服务器接收。

    5. (5)服务器OS逐一去掉 MAC、IP、TCP层封装,剥出应用层数据,也就是Request请求,并交给应用层的Web应用

    6. (6)Web解析Request请求内容,并生成Respond响应,交给服务器OS

    7. (7)Respond响应也是应用层数据,由服务器OS完成TCP、IP、MAC层封装,送到网卡处以比特流形式送送

    8. (8)经过网络传输,比特流到达服务器端,被用户机器接收。

    9. (9)用户机器OSS逐一去掉 MAC、IP、TCP层封装,剥出应用层数据,也就是Respond响应,并交给应用层的浏览器。

    10. (10)浏览器根据Response响应内容,组织显示给用户看。

http的请求报文,主要包括,请求行,请求头部,空行,请求主体
而请求行又包括,请求方法,url,协议版本,请求方法主要有GET、HEAD、POST、PUT、DELETE、MOVE,url就是统一资源定位符,通过这个能在服务器上找到唯一的网页资源,协议版本,目前主流的是http1.1,开始流行的协议版本是http1.0,相对应http1.0,http1.1主要从可扩展性、缓存处理、带宽优化、持久连接、host头、错误通知、消息传递、内容协商等多方面做了一些优化,以上是请求行的内容
请求头部,请求头部主要有媒体类型,语言类型、支持压缩、客户端类型、主机名等,媒体类型主要有文本文件,图片文件,视频文件等,语言类型就是告诉服务器客户端的接受的语言,支持压缩的话,可以节省带宽,客户端类型,会显示客户端浏览器的版本信息,操作系统信息等
空行,代表请求头部的结束,也代表着请求主体的开始
请求报文主体,只有使用POST提交表单的时候,才有
对应的,服务器收到请求报文之后,就会给出响应报文

响应报文主要包含起始行、响应头部、空行、响应报文主体
起始行一般包含http版本号,数字状态码,状态情况

响应头部,主要包括,服务器的web软件版本,服务器时间,长连接还是短连接,设置字符集等等
这里的空行和请求报文空行一样
在报文主体中包装载了要返回给客户端的数据

常见的网页资源有三种,分别是静态网页,动态网页,伪静态,当然这需要着重看

服务器的访问量达到亿级PV时,这个访问的过程就更复杂了,用户的请求会先访问全国的CDN节点,通过CDN挡住全国80%的请求,当CDN上没有时,在访问服务器集群,这个集群一般都有一个4层的代理,这个4层的代理,使用软件来完成的话,就是LVS,使用硬件就是F5,4层的代理,后面才是7层的负载均衡,常用的是haproxy,nginx,然后才是多台web服务器,web服务器比较多的时候,就有两个问题,一个是用户数据的一致性,不能因为不同的web服务器提供服务,而导致数据不同步,这时候,我们就需要使用NFS共享存储,第二个问题是session,不能因为不同的web服务器提供服务,session找不到了,这时候,我们就需要使用memcached来存放并共享session。由于用户访问量太大,这时候的瓶颈就是数据库的压力,我们一般都是使用分布式缓存memcache,redis等,另外数据库还需要做读写分离等优化,后面的过程与访问动态网页类似

当浏览器加载一个完整的页面时,还需要与服务器断开连接,这个过程就是tcp的四次挥手


下面简单介绍web漏洞原理分析

Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。Web应用攻击是攻击者通过浏览器或攻击工具,在URL或者其它输入区域(如表单等),向Web服务器发送特殊请求,从中发现Web应用程序存在的漏洞,从而进一步操纵和控制网站,查看、修改未授权的信息。


 Web应用的漏洞分类

1、信息泄露漏洞

  由于Web服务器或应用程序没有正确处理一些特殊请求,泄露Web服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。

原因分析:

--Web服务器配置存在问题,导致一些系统文件或者配置文件暴露在互联网中;

--Web服务器本身存在漏洞,在浏览器中输入一些特殊的字符,可以访问未授权的文件或者动态脚本文件源码;

--Web网站的程序编写存在问题,对用户提交请求没有进行适当的过滤,直接使用用户提交上来的数据。

2、目录遍历漏洞
 目录遍历漏洞是攻击者向Web服务器发送请求,通过在URL中或在有特殊意义的目录中附加“../”、或者附加“../”的一些变形(如“..\”或“..//”甚至其编码),导致攻击者能够访问未授权的目录,以及在Web服务器的根目录以外执行命令。

3、命令执行漏洞

命令执行漏洞是通过URL发起请求,在Web服务器端执行未授权的命令,获取系统信息,篡改系统配置,控制整个系统,使系统瘫痪等。

命令执行漏洞主要有两种情况:

     --通过目录遍历漏洞,访问系统文件夹,执行指定的系统命令;

    --攻击者提交特殊的字符或者命令,Web程序没有进行检测或者绕过Web应用程序过滤,把用户提交的请求作为指令进行解析,导致执行任意命令。

命令执行漏洞是通过URL发起请求,在Web服务器端执行未授权的命令,获取系统信息,篡改系统配置,控制整个系统,使系统瘫痪等。


4、文件包含漏洞

 文件包含漏洞是由攻击者向Web服务器发送请求时,在URL添加非法参数,Web服务器端程序变量过滤不严,把非法的文件名作为参数处理。这些非法的文件名可以是服务器本地的某个文件,也可以是远端的某个恶意文件。由于这种漏洞是由php变量过滤不严导致的,所以只有基于PHP开发的Web应用程序才有可能存在文件包含漏洞。

5、SQL注入漏洞

SQL注入漏洞是由于Web应用程序没有对用户输入数据的合法性进行判断,攻击者通过Web页面的输入区域(如URL、表单等) ,用精心构造的SQL语句插入特殊字符和指令,通过和数据库交互获得私密信息或者篡改数据库信息。SQL注入攻击在Web攻击中非常流行,攻击者可以利用SQL注入漏洞获得管理员权限,在网页上加挂木马和各种恶意程序,盗取企业和用户敏感信息。


6、跨站脚本漏洞

    跨站脚本漏洞是因为Web应用程序时没有对用户提交的语句和变量进行过滤或限制,攻击者通过Web页面的输入区域向数据库或HTML页面中提交恶意代码,当用户打开有恶意代码的链接或页面时,恶意代码通过浏览器自动执行,从而达到攻击的目的。跨站脚本漏洞危害很大,尤其是目前被广泛使用的网络银行,通过跨站脚本漏洞攻击者可以冒充受害者访问用户重要账户,盗窃企业重要信息。

    根据前期各个漏洞研究机构的调查显示,SQL注入漏洞和跨站脚本漏洞的普遍程度排名前两位,造成的危害也更加巨大。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值