惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence
IT之家
IT之家
博客园 - 【当耐特】
U
Unit 42
云风的 BLOG
云风的 BLOG
L
LangChain Blog
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
N
Netflix TechBlog - Medium

博客园 - stu_acer

对C#对象的Shallow、Deep Cloning认识【转】 PowerShell 启动应用程序【转】 把boolean 参数放到最后面(Put boolean arguments last)【转载】 几个收藏的根据数据库生成Insert语句的存储过程[修正版] SQL Server删除外键约束 IE6下PNG图片透明显示解决方法(From QQ) 用Regex类计算一个字符串出现次数是最好方法【转载】 C#有关Session 操作的几个误区【转】 - stu_acer - 博客园 DataList绑定数据到泛型类(Dictionary) 【转】 重写Asp.NET2.0 TreeView的折叠/展开方法(TreeView_ToggleNode) javascript window.close() 去掉那讨厌的确认对话框【转】 thickbox使用技巧【转】 - stu_acer - 博客园 jQuery操作checkbox的例子(全选,反选,获取选取值)【转】 查看SQL Server 2005版本号 创建SQL索引,查看SQL性能语句收集 ddlevelsmenu在IE6下,与select冲突的解决办法【整理】 IE6 Select元素无法被div等元素覆盖的bug解决办法【zz】 利用Attribute和反射从模板生成短信 - stu_acer - 博客园 AdventureWorks、Northwind、pubs示例数据库下载
Session & Cookie 的使用建议(zz) - stu_acer
stu_acer · 2009-04-16 · via 博客园 - stu_acer

最近开始折腾 ASP.NET MVC 和 JavaScript,陆陆续续从网上下了些代码作为参考,发觉很多前台开发人员在编码的时候根本没考虑最终部署环境。

以验证码为例:

1. 不要把生成的随机验证码存储到 Session 里面。第一,我们并不能保证在负载均衡环境下,每次请求都会被路由到同一台机器上;第二,现在很多 IIS 都会启用 "Web 园",也就是说在一台机器上启用多个进程来并发处理用户请求,而 Session 默认情况下是无法跨进程共享的。这些问题都可能导致用户明明输入一个正确的验证码,却无法进行提交操作。虽然在 MSDN 上建议大家将 Session 信息写入 SqlServer,个人觉得还是部署一个 memcached 要好些,性能会好很多。

2. 使用 Cookie 保存验证码。首先,一定要注意将验证码数据进行加密,否则验证码就是一摆设 (相信很多写过蜘蛛抓取程序的人都会分析是否能直接从 Cookie 获取相应的数据); 第二,不要滥用 Cookie,默认情况下,每个域在同一个客户端只能存储 20 个 Cookie,如果我们不注意分配使用,可能造成某些更重要的信息被删除,造成其他业务流程失败。

3. 很多用户习惯使用 FireFox、Maxthon 等多页面浏览器一次打开多个页面,而如果验证码采用同一个 name 的话,那么只有最后一个页面的验证码有效。等用户输入验证码进行提交操作时,就会频繁出现 "验证码错误"。我想这不但让用户觉得痛苦,对网站的好感也会大幅度降低。我在某网站下载电子图书的时候,就遇到这个问题,所有验证码必须重新刷新一次。解决办法可以是在某个 input.focus 时才显示验证码,从而确保其有效性。

当然,对于这些,我只是个末学后进和外行。不过还是建议大家在编码的时候多多考虑实际部署环境。

转自雨痕大牛的博客:Session & Cookie 的使用建议