请问管理员登录验证用session还是cookie好啊!

如果你想做简单一点。那就用session。一行代码就可以保存管理员的登陆状态,在session有效的时间内。再次访问页面不需要重新登陆。

但是,这个有一个弊端。就是现在的web编程思想:轻服务器端,重客户端。也就是尽量减轻服务器端的压力(少在服务器端存储数据,等等)。应该尽可能的将一些可以放在客户端的数据,放在客户端。而且,有一些很注重性能的架构师,以asp.net为例。他会直接禁用掉所有session(因为他们理解session如果用作保存数据,cookie可以替代,如果用作传递数据,隐藏域可以替代,所以session完全没有必要),如果你遇到这样的架构师,那么session肯定是行不通的。只能用cookie。


如果你要用cookie去实现。就需要做两件事

  1. 对cookie进行加密 

  2. 将cookie存储在本地,并且不随着浏览器的关闭而删除

具体操作代码(我给出了asp.net的实现代码。)

1
2
3
4
5
6
FormsAuthenticationTicket ticket =  new  FormsAuthenticationTicket(
         2,  "username" , DateTime.Now, DateTime.Now.AddDays(30d),  false string .Empty);
string  str = FormsAuthentication.Encrypt(ticket);
 
HttpCookie cookie =  new  HttpCookie(FormsAuthentication.FormsCookieName, str);
Response.Cookies.Add(cookie);

转自:请问管理员登录验证用session还是cookie好啊!_百度知道
http://zhidao.baidu.com/question/390425973256505645.html?qbl=relate_question_0

### 正确设置和管理管理员权限的Cookie 对于Web应用程序而言,正确配置并安全地管理带有管理员权限的Cookie至关重要。这不仅涉及到用户的认证状态保存,还关系到系统的安全性。 #### 设置带管理员权限的Cookie 当用户通过验证成为合法的管理员身份后,在服务器端应当创建一个包含特定标识符(如`admin=true`)的安全Cookie发送给客户端浏览器。此过程通常伴随着会话(session)机制一起工作,确保每次请求都能被识别为已授权访问[^1]。 ```python from flask import Flask, session, redirect, url_for, request import os app = Flask(__name__) app.secret_key = 'your_secret_key' @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] if verify_admin(username, password): # 假设verify_admin是一个用于校验用户名密码的方法 session['logged_in'] = True response = app.make_response(redirect(url_for('index'))) # 创建一个名为'admin_cookie'的cookie,并将其值设为'true' secure_cookie_value = "true" max_age = 60 * 60 * 24 * 7 # cookie有效期一周 response.set_cookie( key='admin_cookie', value=secure_cookie_value, httponly=True, # 防止JavaScript读取cookie samesite="Lax", # 提供跨站请求伪造保护 secure=True # 只允许HTTPS连接下传输cookie ) return response else: error = 'Invalid credentials' return render_template('login.html', error=error) def verify_admin(user, pwd): """模拟验证逻辑""" correct_user = "admin" correct_pwd = "secret" return user == correct_user and pwd == correct_pwd ``` 上述代码展示了如何在一个基于Flask框架的应用程序中实现这一目标。这里特别注意到了几个重要的属性: - `httponly`: 这一标志位防止了前端脚本直接访问这个Cookie; - `samesite`: 减少了CSRF攻击的风险; - `secure`: 确保只有在HTTPS环境下才会传送该Cookie; 这些措施共同作用提高了Cookie的安全性[^4]。 #### 安全存储与同步Cookies 为了保证不同环境间的一致性和数据一致性,应该确认所有涉及的地方都指向相同的Cookie文件路径。例如,在某些情况下可能需要检查系统目录下的配置是否一致,以避免因路径差异而导致的问题[^3]。 另外值得注意的是,虽然可以通过普通用户权限完成部分USB设备的操作,但对于更复杂的场景比如修改注册表项或执行特权命令,则往往仍需获得更高的权限级别才能顺利进行[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值