安全测试(1)
来源:互联网 发布:centos 安装不上ibus 编辑:程序博客网 时间:2024/06/06 04:38
Http基础知识
HTTP(Hypertext transfer protocol)-->超文本传输协议,是一种详细规定了浏览器和万维网服务器(www)之间互相通信的规则,通过因特网传送万维网文档
的数据传送协议。运行于OSI模型的应用层,由请求和响应两部分构成。HTTP协议是无状态的协议。无状态指HTTP协议对于事务处理没有记忆力。缺少事务
状态意味着若后续处理需要前面的信息,则必须重传,可能导致每次连接传送的数据量增大。基于事务处理的需要,出现了cookie和session技术。
(一) 请求和响应:
基于HTTP协议的客户端/服务器模式的信息交换过程:
1. 建立连接:连接的建立是通过申请套接字实现的。客户打开一个套接字,并把它约束在一个端口上,
若成功,就相当于建立一个虚拟文件。以后就可以通过向该虚拟文件上写数据并通过网络向外传送;
2. 发送请求:打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求的动作;
3. 发送响应:服务器在处理完客户请求之后,要向客户机发送响应消息;
4. 关闭连接:通过关闭套接字来结束会话。HTTP协议属于应用层协议,其连接、关闭、信息交换在传输层是由TCP协议保证的。
而传输层的信息交换是由下层网络层的IP协议来保证。
HTTP请求由三部分组成:请求的方法、请求头、请求正文。
HTTP响应包含:协议状态代码描述、响应头、响应正文。
HTTP响应状态码分析:
1XX:信息响应类。表示接收到请求并继续处理。
2XX:处理成功响应类。
3XX:重定向响应类。
4XX:客户端错误。
5XX:服务器端错误。
(二) 状态保持-->cookie&session技术:
1.HTTP协议需要保持状态的必要性:想想淘宝的购物车....( 此处略去一万字,非本文重点)
2.实现HTTP状态保持的方案:
a.修改HTTP协议,使其支持状态保持;(不现实)
b.使用cookie技术,由客户端来保持状态信息;(可行)
c.使用session技术,由服务器端来保持状态信息;(可行)
3.cookie技术:
概念:cookie是服务器发送给客户端的特殊信息,用来记录客户端状态。cookie以文本方式保存在客户端,每次请求时需要。
特点:cookie在客户端,只能保存字符串,不能保存其它对象类型。且需要客户端浏览器支持。
采用cookie技术需要解决的问题:
cookie创建:cookie cookie = new cookie("guest","1");
cookie类:javax.servlet.http.cookie;
构造:public cookie (string name,string value);
设置cookie的过期时间:cookie.setMaxAge(int lifetime);
cookie的修改和删除:cookie不提供修改和删除操作。若要修改某个cookie,只要新建一个同名的cookie,并添加到response中覆盖原来
的cookie;若要删除某个cookie,只要新建一个同名cookie,并将maxAge设置为0,并添加到 response中覆盖原来
的cookie即可。
4.session技术:
概念:客户端浏览器访问服务器时,服务器把客户信息以某种形式记录到服务器上就是Session。当客户端浏览器再次访问时
只需要从该session中根据是否包含SessionID来查找该客户的状态。
特点:session在用户第一次访问服务器时自动创建。若只访问HTML、IMAGE等静态资源时,不会创建Session。
每次客户端发送请求,服务器端都会检查是否含有sessionID。状态信息保存在服务器端,安全性高。可支持任何类型的对象。
实现:1.在客户端与服务器端传递JSessionID,使用客户端cookie来保存SessionID。
2.若客户端禁用cookie。使用URL重写,直接在URL后附加上Session id 信息。
采用Session技术需要解决的问题:
获取 Session:request.getSession();
保存信息到Session:Session.SetAttribute(String name,Object oo);
设置Session有效时间:public void setMaxInactiveInterval(int interval)
在web.xml中设置会话超时,单位是分钟:
<session-config>
<session-timeout>10</session-timeout>
</session-config>
Session的创建和删除:
httpSession.invalidate() // 手工销毁Session
Request.getSession(true) // 强制生成Session
HttpSession.getId() // 获取SessionID
(三) HTTPS原理:
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即在HTTP下加入SSL层,HTTPS的安全基础是SSL。因此加密的详细内容就需要SSL。
HTTPS使用SSL加密传输协议,使用端口443。采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有
用于对应的服务器的时候,客户端才信任此主机。访问合法的HTTPS网站,在URL地址栏会有一个绿色的标识。提示使用的是HTTPS。
- 安全测试(1)
- 安全测试(一)
- web测试 (五)安全测试
- web安全测试基础1
- 安全协议SDIoT的日常测试工作(1)
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试
- 安全测试,web安全
- 安全测试-渗透测试
- Android多Activity简介
- 黑马程序员——Java语言的基础语法总结(上)
- 南大软院大神养成计划--day05
- USB HID调试过程中碰到的一些问题
- windows7_64下Oracle客户端及PL/SQL安装
- 安全测试(1)
- POJ 1845-Sumdiv 数论 +快速幂&&筛素&&分解质因数&&求因数之和的模板
- 软件工程——从艺术走向科学
- Spring maven打包成jar和war
- LintCode-剑指Offer-(38)搜索二维矩阵Ⅱ
- Android 中消息模型的四大核心对象:Message、MessageQueue、Looper、Handler
- linux下oracle客户端安装
- 物联网与嵌入式系统概论-week4-Networking and the Internet-Lesson2: Internet Protocol
- 工作第一天对spring+hibernate+未知框架感悟