asp.net cookie操作(防止cookie 欺骗 )

protected void page_load(object sender, eventargs e)
        {
                if (request.cookies["username"] == null)
                {
                    httpcookie mycookie = new httpcookie("username");
                    mycookie.values.add("prodid", "");
                    mycookie.expires = datetime.now.adddays(1);
                    response.cookies.add(mycookie);
                }
        }

这是插入cookie的代码

 public void addcookie(string cookievalue)
        {
           
            httpcookie cookie = new httpcookie("username");
            if (request.cookies["username"].values["prodid"] != "")
            {
                string myvalue = "";
                myvalue = request.cookies["username"].values["prodid"].tostring();
                myvalue = cookievalue + "," + myvalue;
                cookie.values.add("prodid", myvalue);
                cookie.expires = datetime.now.adddays(1);
                response.cookies.add(cookie);
            }
            else
            {
                cookie.values.add("prodid", cookievalue);
                cookie.expires = datetime.now.adddays(1);
                response.cookies.add(cookie);
            }
        }

最后是删除cookie的方法

        protected void button2_click(object sender, eventargs e)
        {
            httpcookie mycookie = new httpcookie("username");
            mycookie.expires = datetime.now.adddays(-1d);
            response.cookies.add(mycookie);
        }

防止cookie 欺骗

按照浏览器的约定,只有来自同一域名的cookie才可以读写,而cookie只是浏览器的,对通讯协议无影响,所以要进行cookie欺骗可以有多种途径,最简单的方法自己建立一个网站,在c:windowssystem32driversetchosts 中把这个自己建立的网站制定成想要欺骗的域名,cookie写入以后再把hosts的值改回来,这样这个本地的网站的cookie就可以抛到你想要入侵的域名下

 

public void logined(modeluser model)
  {
      int outtime = getloginouttime();
      httpcontext.current.response.cookies["username"].value=model.user_name;
      httpcontext.current.response.cookies["username_check"].value =dessecurity.desencrypt(model.user_name);
      httpcontext.current.response.cookies["username"].expires = datetime.now.addminutes(outtime);
      httpcontext.current.response.cookies["username_check"].expires = datetime.now.addminutes(outtime);
      setusermodel(model);
  }

可以看到保存了两个cookie值,都是用户名,一个是加密的一个是未加密的

验证是否登陆的代码如下:

public bool islogin()
{
    bool islogin = false;
    if (httpcontext.current.request.cookies["username"] != null)
    {
        if (httpcontext.current.request.cookies["username_check"] != null)
        {
            string username = httpcontext.current.request.cookies["username"].value;
            string usernamecheck = httpcontext.current.request.cookies["username_check"].value;
            if (username == dessecurity.desdecrypt(usernamecheck))
                islogin = true;
        }
    }
    return islogin;
}

 

时间: 2024-09-18 15:14:28

asp.net cookie操作(防止cookie 欺骗 )的相关文章

JS保存和删除cookie操作 判断cookie是否存在_基础知识

有时我们需要用cookie保存用户名,记录登录状态,如何正确判断该机用户cookie是否存在呢?不能简单使用a!="这样的写法. 复制代码 代码如下:  a=getCookie("username3"); c_start=document.cookie.indexOf("username3="); if(c_start == -1){  $("#login_form").show();     $("#logined"

关于asp.net c#中对cookie的操作

asp.net|cookie   今天有空就把操作cookie的写了,虽然很简单,不过免得到时候忘记了,之前就是忘记了还很实验了一番才弄出来,郁闷了.    下面是写cookie   1 HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项   2 DateTime dt = DateTime.Now;//定义时间对象   3 TimeSpan ts=new TimeSpan(1,0,0,0);//cooki

ASP.NET Cookie 操作实现_实用技巧

ASP.NET Cookie 概述 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息. 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递.Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息. 例如,如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是

ASP对Cookie操作的详细讲解

cookie Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据.Request和Response对象都有一组Cookie.Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器.反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie1.ExpiresAbsolute属性 该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了.通过给E

asp.net Cookie操作类_实用技巧

复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Data; using System.Configu

asp.net cookie操作类

 代码如下 复制代码 public class BsCookie    {        //操作的cookie        private HttpCookie _theCookie;        //????ookie的名?        private string _cookieName;        private bool _httpOnly = true;        /// <summary>        /// 是否只允?在服?掌鞫嗽L??,默?只允?在服?斩嗽L?

ASP下Cookie操作的详细讲解_应用技巧

Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据.Request和Response对象都有一组Cookie.Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器.反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie  1.ExpiresAbsolute属性  该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了.通过给Expir

ASP下Cookie操作的详细讲解

Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据.Request和Response对象都有一组Cookie.Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器.反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie 1.ExpiresAbsolute属性 该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了.通过给Expires

【ASP.NET】session与cookie的比较

    在这次的考试维护中,温习了很多旧知识,也学习到了很多新知识.本篇博客想要和大家一起分享的是session和cookie的联系和区别. [项目概要]     开发中,免不了会需要这样一种变量,在此阶段并没有它,但它出现在之前阶段或者其它方法中,我们就需要把它存储着,使得我们可以方便的获取它的值.在C/S开发下,我们可以定义全局变量:那么在B/S开发下,我们要用到的就是session或cookie了. [项目背景]     在此次开发调查问卷系统中,有几个变量我们是随时需要的,比如:专业.课