教材内容总结及扩展php
Web体系结构前端
Web体系结构,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,好比论坛、网络相册、交友、BLOG等常见应用。动态应用系统一般与数据库系统、缓存系统、分布式存储系统等密不可分。nginx
大型动态应用系统平台主要是针对于大流量、高并发网站创建的底层系统架构。大型网站的运行须要一个可靠、安全、可扩展、易维护的应用系统平台作为支撑,以保证网站应用的平稳运行。c++
大型动态应用系统又可分为几个子系统:web
1)Web前端系统sql
2)负载均衡系统数据库
3)数据库集群系统浏览器
4)缓存系统缓存
5)分布式存储系统安全
6)分布式服务器管理系统
7)代码分发系统 Web前端系统
负载均衡系统:
为了达到不一样应用的服务器共享、避免单点故障、集中管理、统一配置等目的,不以应用划分服务器,而是将全部服务器作统一使用,每台服务器均可以对多个应用提供服务,当某些应用访问量升高时,经过增长服务器节点达到整个服务器集群的性能提升,同时使他应用也会受益。该Web前端系统基于Apache/Lighttpd/Eginx等的虚拟主机平台,提供PHP程序运行环境。服务器对开发人员是透明的,不须要开发人员介入服务器管理
负载均衡系统分为硬件和软件两种。硬件负载均衡效率高,可是价格贵,好比F5等。软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量通常或稍大些网站来说也足够使用,好比lvs, nginx。大多数网站都是硬件、软件负载均衡系统并用。
数据库集群系统:
因为Web前端采用了负载均衡集群结构提升了服务的有效性和扩展性,所以数据库必须也是高可靠的,才能保证整个服务体系的高可靠性,如何构建一个高可靠的、能够提供大规模并发处理的数据库体系?
咱们能够采用以下方案:
1) 使用 MySQL 数据库,考虑到Web应用的数据库读多写少的特色,咱们主要对读数据库作了优化
,提供专用的读数据库和写数据库,在应用程序中实现读操做和写操做分别访问不一样的数据库。
2) 使用 MySQL Replication 机制实现快速将主库(写库)的数据库复制到从库(读库)。一个
主库对应多个从库,主库数据实时同步到从库。
3) 写数据库有多台,每台均可以提供多个应用共同使用,这样能够解决写库的性能瓶颈问题和单
点故障问题。
4) 读数据库有多台,经过负载均衡设备实现负载均衡,从而达到读数据库的高性能、高可靠和高
可扩展性。
5) 数据库服务器和应用服务器分离。
6) 从数据库使用BigIP作负载均衡。
缓存系统:
缓存分为文件缓存、内存缓存、数据库缓存。在大型Web应用中使用最多且效率最高的是内存缓存。最经常使用的内存缓存工具是Memcached。使用正确的缓存系统能够达到实现如下目标:
一、使用缓存系统能够提升访问效率,提升服务器吞吐能力,改善用户体验。
二、减轻对数据库及存储集服务器的访问压力。
三、Memcached服务器有多台,避免单点故障,提供高可靠性和可扩展性,提升性能。
分布式存储系统
Web系统平台中的存储需求有下面两个特色:
1) 存储量很大,常常会达到单台服务器没法提供的规模,好比相册、视频等应用。所以须要专业的大规模存储系统。
2) 负载均衡cluster中的每一个节点都有可能访问任何一个数据对象,每一个节点对数据的处理也能被其余节点共享,所以这些节点要操做的数据从逻辑上看只能是一个总体,不是各自独立的数据资源。
所以高性能的分布式存储系统对于大型网站应用来讲是很是重要的一环。
分布式服务器管理系统
随着网站访问流量的不断增长,大多的网络服务都是以负载均衡集群的方式对外提供服务,随之集群规模的扩大,原来基于单机的服务器管理模式已经不可以知足咱们的需求,新的需求必须可以集中式的、分组的、批量的、自动化的对服务器进行管理,可以批量化的执行计划任务。
在分布式服务器管理系统软件中有一些比较优秀的软件,其中比较理想的一个是Cfengine。它能够对服务器进行分组,不一样的分组能够分别定制系统配置文件、计划任务等配置。它是基于C/S 结构的,全部的服务器配置和管理脚本程序都保存在Cfengine Server上,而被管理的服务器运行着 Cfengine Client 程序,Cfengine Client经过SSL加密的链接按期的向服务器端发送请求以获取最新的配置文件和管理命令、脚本程序、补丁安装等任务。
有了Cfengine这种集中式的服务器管理工具,咱们就能够高效的实现大规模的服务器集群管理,被管理服务器和 Cfengine Server 能够分布在任何位置,只要网络能够连通就能实现快速自动化的管理。
代码发布系统
随着网站访问流量的不断增长,大多的网络服务都是以负载均衡集群的方式对外提供服务,随之集群规模的扩大,为了知足集群环境下程序代码的批量分发和更新,咱们还须要一个程序代码发布系统。
这个发布系统能够帮咱们实现下面的目标:
1) 生产环境的服务器以虚拟主机方式提供服务,不须要开发人员介入维护和直接操做,提供发布系统能够实现不须要登录服务器就能把程序分发到目标服务器。
2) 咱们要实现内部开发、内部测试、生产环境测试、生产环境发布的4个开发阶段的管理,发布系统能够介入各个阶段的代码发布。
3) 咱们须要实现源代码管理和版本控制,SVN能够实现该需求。
这里面可使用经常使用的工具Rsync,经过开发相应的脚本工具实现服务器集群间代码同步分发。
HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通讯协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP是一个属于应用层的面向对象的协议,因为其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,通过几年的使用与发展,获得不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工做正在进行之中,并且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议工做于客户端-服务端架构为上。浏览器做为HTTP客户端经过URL向HTTP服务端即WEB服务器发送全部请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
结构图:
主要特色
一、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法经常使用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不一样。因为HTTP协议简单,使得HTTP服务器的程序规模小,于是通讯速度很快。
二、灵活:HTTP容许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
3.无链接:无链接的含义是限制每次链接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开链接。采用这种方式能够节省传输时间。
4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺乏状态意味着若是后续处理须要前面的信息,则它必须重传,这样可能致使每次链接传送的数据量增大。另外一方面,在服务器不须要先前信息时它的应答就较快。
5.支持B/S及C/S模式。
Web应用安全:
OWASP总结了现有Web应用程序在安全方面常见的十大漏洞分别是:
非法输入
失效的访问控制
失效的帐户和线程管理
跨站脚本攻击
缓存溢出问题
注入式攻击
异常错误处理
不安全的存储
程序拒绝服务攻击
不安全的配置管理等。
kali视频学习实践
Fuzz模糊测试工具集
1.Bed.pl
Bed是一个纯文本协议的Fuzz工具,可以检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。
2.Fuzz_ipv6
也是针对IPV6协议的模糊测试工具
3.Wfuzz
针对WEB应用的模糊测试工具,能够进行web应用暴力猜解,也支持对网站目录,登陆信息,应用资源文件等的暴力猜解,还能够进行get及post参数的猜解,sql注入,xss漏洞的测试等。该工具全部功能都依赖于字典。
参数中FUZZ至关于一个变量,用字典中的字段来替换它来完成猜解。
4.Xsser
主要是针对一个点或是一个页面检查是否是有Xsser漏洞。
Xsser的参数介绍以下:
xsser [OPTIONS][-u|-i|-d]
指定待检测目标,至少要指定一下选项的其中一项,以设置待检测目标URL。
-u URL 待检测的目标URL
1 -i READFILE 从文件读取目标URL
-d DORK 将搜索引擎返回的搜索结果做为目标URL
学习进度条
40%
学习目标
基本理解Kali的用法,掌握网络攻防基本技巧。黑客入门。
第四周进度 上周目标完成状况 良好 本周学习计划 教材第四章的学习 完成p115的实践练习 5个Kali视频学习(11-15)
第五周进度 教材第11、十二章的学习 完成p457,P507的实践练习 5个Kali视频学习(16-20)
学习遇到的问题
在运行虚拟机的过程当中常常会碰见卡顿或者死机的状况,也知道是电脑配置问题,是否是有一些方法能够经过设置提升虚拟机的速度。