安全测试(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。



0 0