web应用安全现状
网络中通常部署防火墙、ips等安全产品,但是对于http、https的web应用层攻击往往无法察觉,不能起到理想的防护效果。
专门针对web应用防护的web应用防火墙(waf)应运而生。类似于在client和server之间进行代理。缺点是功能单一,只能对web应用进行防护。
法律法规及行业规范的出台一方面说明了对web安全的重视,另一方面也从侧面反映了web安全的危险棘手境地。包括网络安全、政务网安全、网上银行安全、第三方支付安全、门户网安全等等。
web渗透测试
概念:渗透测试工程师完全模拟攻击者可能使用的攻击技术和漏洞发现技术,对目标网络主机、应用的安全做深入的探测,发现系统漏洞的环节。
目的:安全专家针对漏洞产生的原因进行分析,提出修复建议,以防止恶意攻击者的攻击。
网络安全法规定,在相关的安全测试过程中,首先要获得目标渗透客户的授权才可以实施测试,如果未经授权,直接进行测试的话,是一种非法行为。
web服务器安全风险
OWASP TOP 10
开放web应用安全项目
比较常见的有:注入、XSS、CSRF
WEB协议详解
URL/URI
URL:统一资源定位符,表示字段的地点(互联网上所处的位置)
URI:统一资源标识符。用字符串标识某一互联网资源。
uri=url+urn
urn=统一资源名称
所以URI的范围大于URL。URL是URI的一个子集
典型的URI例子:
URL:http://support.huawei.com/enterprise/zh/index.html
URI:support.huawei.com
HTTP/HTTPS
HTTP是一种无状态的协议,无状态的协议也叫哑协议,基于简单的请求--响应模式(request/response)。
HTTP报文大致分为报文首部和报文主体两块,两者由最初出现的空行来划分。通常,并不一定要有报文主体。http有两类报文:请求报文和响应报文。
请求报文
从客户端向服务器发送请求报文。一个请求报文由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体组成。
在请求方法中,post的安全性要比get的安全性高,因此,部分安全隐患也来自于get字段。
请求方法
GET:获取资源(经典方式)
用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保持原样返回,如果是像CGI那样的程序,则返回经过执行后的输出结果。
POST:传输实体主体(经典方式)
用来传输实体的主体。虽然用GET方法也可以传输实体的主体,但是一般不用GET方法进行传输,而是利用POST方法,虽然说POST的功能与GET很相似,但是POST的主要目的并不是获取响应的主体内容。
PUT:传输文件
HEAD:获取报文首部
DELETE:删除文件
OPTIONS:询问支持的方法
TRACE:追踪路径
CONNECT:要求用隧道协议连接代理
首部字段包含:请求首部字段、通用首部字段、实体首部字段
请求首部
从客户端向服务器端发送请求报文时使用的首部,补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
首部字段名 |
说明 |
Accept |
用户代理可处理的媒体类型 |
Accept-Charset |
优先的字符集 |
Accept-Encoding |
优先的内容编码 |
Accept-Language |
优先的语言(自然语言) |
Authorization |
Web认证信息 |
Expect |
期待服务器的特定行为 |
From |
用户的电子邮箱地址 |
Host |
请求资源所在服务器,注意:必须存在请求首包 |
If-Match |