cookies登陆的安全性
来源:互联网 发布:mac翻墙软件2016 编辑:程序博客网 时间:2024/06/05 01:24
cookies登陆的安全性
一、cookie基本特性:
1、是以键值对存放。
2、cookie存在在硬盘的临时文件是可以被修改的。
如IE,它一般是存放在操作系统的安装分区目录下:C:\Users\hp\AppData\Local\Microsoft\Windows\Temporary Internet Files
3、cookie文本是不可以直接修改的。
二、cookie篡改或者是欺骗,主要通过以下方式进进行的:
1、本地修改,如:将用户名存放在cookie里来判断用户是登陆。这样可以通过工具直接修改存放在cookie中的用户名,从而达到欺骗目的。
2、cookie里存放的数据向服务器传输时,可以通过获取cookie里数据,并且进行修改。从而达到欺骗的目的。
3、一个比较基础欺骗的举例说明:
比如说cookie存放着一个普通用户,如果管理员账号是admin,哪么将cookie里存放的用户修改成admin就达到了欺骗的目的。
三、如何防止cookie欺骗:
假设cookie里主要存放用户的和客户端的相关信息。
cookie的值是 = (username+过期时间+md5(username+ip+过期的时间))的Base64编码
判断用户是否登陆时,获取cookie的值,进行字符串分割,判断用户名、获取的客户端IP、过期时间与加密的md5字符串进行比对,如果比对成功,说明用户已经登陆。
用户登陆示例代码如下:
string username = txtUserName.Text;
string pwd = txtPwd.Text;
//判断用户核对成功后,对cookie的保存
string ip = Request.UserHostAddress; //获取客户端IP
DateTime expiresDate = DateTime.Now.AddMinutes(30);//获取当前时间
StringBuilder sBuilder = new StringBuilder();
sBuilder.Append(username).Append("-");
sBuilder.Append(expiresDate).Append("-");
//通过MD5不可逆加密,方面后面对这些数据进行核对。从而防止它人通过cookie破解网站。
//同时这也起到不需要将要核对的数据放到数据库,从而提交了效率,节省了存储空间。
sBuilder.Append(MD5Encode(username + ip + expiresDate));
//将用户相关信息保存在cookie里
HttpCookie cookie = new HttpCookie("user");
//ToBase64String的好处,处理特殊字符,有些字符是无法存储在cookie中的,当然所有字符显示不是它本身,起到了一定的安全作用
cookie.Value = Convert.ToBase64String(Encoding.UTF8.GetBytes(sBuilder.ToString()));
cookie.Path = "/";
cookie.Expires = DateTime.Now.AddMinutes(30);//设置cookie过期时间为30分钟
Response.Cookies.Add(cookie);
判断用户是否登陆示例代码:
if (Request.Cookies["user"] != null)
{
//获取cookie里存放的用户的相关信息
byte[] cookiesByte = Convert.FromBase64String(Request.Cookies["user"].Value);
String cookieValue = Encoding.UTF8.GetString(cookiesByte);
//分割成数组
String[] objArry = cookieValue.Split('-');
//获取客户端IP,防止客户ip被修改
string cip = Request.UserHostAddress;
if (MD5Encode(objArry[0] + cip + objArry[1]) == objArry[2])
{
//说明cookies的值是安全的,没有被篡改
}
else
{
//说明cookie被修改或是篡改
}
}
//md5加密代码如下:
//对md5进行加密的方法
public string MD5Encode(string str)
{
return "";
}
- cookies登陆的安全性
- 单一登陆--Web应用程序的企业级安全性
- csdn登陆+cookies
- 使用Cookies做免登陆时你必须知道的
- session登陆安全性
- java发送Cookies登陆信息
- asp.net中 cookies的应用,自己写的一个简单登陆程序。
- 今天写出的一个基类。用于根据cookies来判断用户是否已经登陆
- 浅析phpwind9.0之cookies的生成机制解析(成功登陆后)
- 【phpwind9.0】浅析phpwind9.0之cookies的生成机制解析(成功登陆后)
- 浅析phpwind9.0之cookies的生成机制解析(成功登陆后)
- python如何利用cookies直接扒取用户登陆过后的网页
- Cookies+Session保存用户登陆状态
- Swift webView 记录提取cookies 自动登陆
- MediaWiki 登陆错误,提示开启Cookies
- IT忍者神龟之基于cookie的WEB自动登陆功能设计和账户安全性
- PHP做APP接口时,如何保证接口的安全性(登陆验证)
- app登陆以及与后台通讯安全性
- 学习操作系统的自娱自乐
- (VC)Windows 应用程序交互过程
- HTML 基础语法
- (VC)win32 窗体开发主要流程
- 【每日N题】大根堆、小根堆
- cookies登陆的安全性
- 图形学基础 - 平移和旋转 2D
- win7下不能使用dos命令
- java中关键字 super表示的真正对象
- Javascript图形学-点-圆和椭圆
- BreakPoint.Hex.Workshop.v6.7.2.5284.Incl.Keyfilemaker.and.Patch-EMBRACE
- 关于计算机内存的疑问
- Javascript图形学-线-正多边形
- session登陆安全性