HTTP与会话管理

1、Content-Type

发送值得MIME类型,可通过HTML的form元素设置。默认为application/x-www-form-urlencoded。格式为“名称=值”的组合通过&相连,名称和值都经过百分号编码。

2、百分号编码

中文和特殊符号等不能直接用于URL,需要经过百分号编码才能用于URL。

百分号编码将字符以字节为单位转换成%xx形式。中文“德”进行UTF-8编码,可得到E5 BE B3字节列,百分号编码后即为%E5%BE%B3。

根据百分号编码规则,空格应为%20,但在application/x-www-form-urlencoded的情况下,空格则被特殊处理成+号。

3、Referer

当前页面的链接来源页面。

form元素发送的请求、a元素生成的链接或img元素的图像等也会产生referer头信息。

4、GET和POST的使用区别

*GET方法仅用于查阅(获取资源)

*GET方法被认为没有副作用(副作用是指,除了获取资源内容以外的qi它操作。)

*发送敏感数据时应使用POST方法

GET方法使用的是URL后紧跟查询字符串的形式来传递参数,由于浏览器和服务器能够处理的URL长度是有限的,所以当传递的信息量很大时,使用POST方法更安全。

GET方法存在如下风险:

URL中指定的参数经由Referer泄露;

URL中指定的参数残留在访问日志中(Access Log)。

5、Hidden、cookie、session

在认证和授权信息这样需谨防被用户自己更改的信息,应当保存在会话变量中。

除此以外的信息,则首先应考虑能否保存在hidden参数中。

在登录前的状态下,由于不存在与认证和授权相关的信息,因此,原则上要避免使用会话变量,而是应该使用hidden参数,来防止信息泄露。

6、HTTP认证功能

Basic认证、NTLM认证、Digest认证等。

Basic认证:

此认证下,当浏览器请求一个需要认证的网页时,服务器会先向浏览器返回“401 Unauthorized(未认证)”状态码。浏览器收到状态码后,会显示要求输入ID和密码的画面,然后再将输入的ID和密码t添加到请求信息中,再次向服务器发送。

Basic认证大多通过设置Web服务器来实现,也通过编写代码实现。

Authorization头信息:Basic后面的字符串内容,由ID和密码以冒号像个组成的字符串、在经过Base64编码后的结果。

认证成功一次以后,再向请求的目录发送请求时,浏览器会自动附带Authorization消息头。认证对话框只在最初的时候显示一次,每次请求时都会发送ID和密码,认证状态没有被保存在任何地方。Basic认证是无状态的,不存在注销的概念。

7、认证与授权

认证:通过一些方法手段来确认操作者确实是其本人。

授权:授予已经通过认证的用户一些权限。

8、Cookie与会话管理

会话管理:记忆应用程序状态的功能。

通过Set-Cookie响应头信息,服务器向浏览器下达记住此cookie值的指示。

记住此Cookie值得浏览器,再向相同网站发送请求时,就会同时发送此Cookie值,

Cookie可以设置有效期限,没有设置有效期限的Cookie会在浏览器被关闭之前一直有效。

会话ID需满足如下需求:

1.会话ID不能被第三方推测;

2.会话ID不能被第三方劫持;

3.会话ID不能向第三方泄露。

要点:使用开发工具提供的会话管理机制。

会话固定攻击:攻击者劫持正规用户的会话ID来进行攻击的手法。修复方法为正常用户验证成功后,重新分配会话ID。

要点:认证后改变会话ID。

会话ID泄露的原因:

1.发型Cookie时的属性制定有问题

2.会话ID在网络上被监听

3.通过跨站脚本漏洞等应用中的安全隐患被泄露

4.由于PHP或浏览器等平台存在安全隐患被泄露

5.会话ID保存在URL中的情况,会通过referer消息头泄露

要点:原则上不设置Cookie的Domain属性。未指定Domain属性的Cookief发送范围最小,最安全。

Domian:扩展匹配,xxx.com的cookie可以被发送至aaa.xxx.com,bbb.xxx.com。

Secure:仅在SSL传输的情况下能够被发送给服务器。

HttpOnly:防止JavaScript窃取Cookie信息。

 

 

 

 

附录:

百分号编码属于URL(URI)的规范,application/x-www-form-urlencoded属于HTML的规范,存在细微差别。

 

 

 

转载于:https://www.cnblogs.com/wcsan/p/9145982.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值