当前位置:首页 » 行业资讯 » 周边资讯 » 正文

HTTPSession在HTTPS中的应用及其安全性分析

HTTPSession在HTTPS中的应用及其安全性分析

一、引言

随着互联网的普及和技术的快速发展,Web应用程序的安全性越来越受到关注。

HTTP和HTTPS是Web应用程序中常用的两种协议,其中HTTPS通过SSL/TLS加密通信来提供更安全的数据传输服务。

HTTPSession作为Web应用程序中的一种重要机制,用于跟踪用户状态,保存用户信息。

本文将深入探讨HTTPSession在HTTPS中的应用及其安全性。

二、HTTPSession概述

HTTPSession是一种在Web应用程序中跟踪用户状态的重要机制。

当用户访问Web应用程序时,服务器会为用户创建一个唯一的Session,并在用户的每次请求中附带此Session的唯一标识符。

通过Session,服务器可以保存用户的状态信息,如登录状态、浏览记录等,以实现跨页面或跨时间的用户状态保持。

三、HTTPS中的HTTPSession

在HTTPS中,HTTPSession的应用与HTTP中的应用基本相同。

由于HTTPS使用了SSL/TLS加密通信,HTTPS中的HTTPSession具有更高的安全性。

在HTTPS中,HTTPSession的传输过程也是通过SSL/TLS加密的,从而保证了Session的安全性,防止了恶意攻击者窃取或篡改Session信息。

四、HTTPSession在HTTPS中的安全性分析

1. 加密传输:HTTPS使用SSL/TLS协议对通信进行加密,HTTPSession作为通信的一部分,同样受到加密保护。这使得攻击者难以窃取或篡改Session信息,保证了用户数据的安全性。

2. 身份验证:HTTPS中的数字证书可以实现服务器身份验证,确保用户访问的是合法的网站。在假冒网站(即钓鱼网站)上,攻击者虽然可能能够窃取Session信息,但由于无法获得合法的数字证书,用户浏览器会识别并警告用户。

3. 会话固定和会话劫持:尽管HTTPS和HTTPSession提供了加密传输和身份验证,但仍需注意会话固定和会话劫持等安全问题。会话固定是指服务器为每个用户分配一个固定的Session ID,以减少因Session被盗用导致的风险。会话劫持是指攻击者通过某些手段获取到用户的Session信息,从而假冒用户身份进行非法操作。为了防范这些问题,开发者需要采取额外的安全措施,如使用更强大的密码策略、定期更换Session ID等。

4. Session存储安全:除了传输安全外,Session信息的存储安全也至关重要。服务器应妥善保管Session信息,避免泄露。同时,开发者应注意避免将Session信息存储在客户端(如浏览器Cookie)中,以防止攻击者通过XSS攻击等手段获取Session信息。

5. Session过期和失效:合理的Session过期和失效机制可以保证用户数据的安全。过期的Session将被服务器自动删除,避免长时间不活动的Session被恶意利用。还可以设置Session的空闲超时机制,即当用户在一定时间内没有进行任何操作时,Server可以强制其重新验证身份或重新登录等。这可以有效防止由于用户长时间不操作而导致的安全风险。

五、结论

HTTPSession在HTTPS中的应用是安全可靠的。

HTTPS的加密通信机制为HTTPSession提供了传输安全,而合理的会话管理和存储策略则能进一步提高其安全性。

开发者仍需保持警惕,注意防范会话固定、会话劫持等安全问题,并遵循最佳实践来确保用户数据的安全。

随着技术的不断发展,我们期待更先进的Web安全技术和机制的出现,为Web应用程序的安全性提供更强有力的保障。


session和cookie的区别和联系

具体来说cookie机制采用的是在客户端保持状态的方案。

它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持。

cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力.而session机制采用的是一种在客户端与服务器之间保持状态的解决方案。

同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。

而session提供了方便管理全局变量的方式session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie时,这个值也可能设置为由get来返回给服务器。

就安全性来说:当你访问一个使用session的站点,同时在自己机子上建立一个cookie,建议在服务器端的SESSION机制更安全些.因为它不会任意读取客户存储的信息。

正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie从网络服务器观点看所有HTTP请求都独立于先前请求。

就是说每一个HTTP响应完全依赖于相应请求中包含的信息状态管理机制克服了HTTP的一些限制并允许网络客户端及服务器端维护请求间的关系。

在这种关系维持的期间叫做会话(session)。

Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 – 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。

在谈论session机制的时候,常常听到这样一种误解“只要关闭浏览器,session就消失了”。

其实可以想象一下会员卡的例子,除非顾客主动对店家提出销卡,否则店家绝对不会轻易删除顾客的资料。

对session来说也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留,程序一般都是在用户做log off的时候发个指令去删除session。

然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个session id就消失了,再次连接服务器时也就无法找到原来的session。

如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的HTTP请求头,把原来的session id发送给服务器,则再次打开浏览器仍然能够找到原来的session。

恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。

大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出cookie,我们叫做sessioncookie,以区别persistent cookies,也就是我们通常所说的cookie,注意sessioncookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到sessionid=KWJHUG6JJM65HS2K6之类的字符串。

明白了原理,我们就可以很容易的分辨出persistent cookies和sessioncookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,sessioncookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistentcookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如sessioncookie安全了。

通常sessioncookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到了,此时我们可以先把sessionid保存在persistentcookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过sessioncookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。

在一些web开发的书中,往往只是简单的把Session和cookie作为两种并列的http传送信息的方式,sessioncookies位于服务器端,persistentcookie位于客户端,可是session又是以cookie为基础的,明白的两者之间的联系和区别,我们就不难选择合适的技术来开发webservice了。

https是什么意思

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

它是一个URI scheme(抽象标识符体系),句法类同http:体系。

用于安全的HTTP数据传输。

https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。

这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

简介它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。

HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的子层。

(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。

)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。

HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

也就是说它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

https和http的区别是什么

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。

它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。

HTTPS实际上应用了Netscape的安 全全套接字层(SSL)作为HTTP应用层的子层。

(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。

)SSL使 用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。

HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

HTTPS和HTTP的区别:https协议需要到ca申请证书,一般免费证书很少,需要交费。

http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全HTTPS解决的问题:

1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue 还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.

2 . 通讯过程中的数据的泄密和被窜改

1. 一般意义上的https, 就是 server 有一个证书.

a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.

b) 服务端和客户端之间的所有通讯,都是加密的.i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.

2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.

a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.

b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.

HTTPS 一定是繁琐的.

a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.i. 任何应用中,过多的round trip 肯定影响性能.

b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示

未经允许不得转载:虎跃云 » HTTPSession在HTTPS中的应用及其安全性分析
分享到
0
上一篇
下一篇

相关推荐

联系我们

huhuidc

复制已复制
262730666复制已复制
13943842618复制已复制
262730666@qq.com复制已复制
0438-7280666复制已复制
微信公众号
huyueidc_com复制已复制
关注官方微信,了解最新资讯
客服微信
huhuidc复制已复制
商务号,添加请说明来意
contact-img
客服QQ
262730666复制已复制
商务号,添加请说明来意
在线咨询
13943842618复制已复制
工作时间:8:30-12:00;13:30-18:00
客服邮箱
服务热线
0438-7280666复制已复制
24小时服务热线