http连接是无状态的,但web程序交互中经常又需要状态。所以目前流行的基本是Cookie,Session结合方式来管理,Cookie中会带一个会话标识,如果不用cookie,可能会将会话标识跟在地址栏后面。但也有不通过Session这样方式的,使用自定义的方式来维护状态。但有一点一定要注意,不能用递增的明码ID来做会话状态标识,危险性太大。下面举例说明。
前些时间,发现有个网站,是flash做的游戏,因为玩了游戏,有积分,积分呢可以抽奖,具体什么网站我就不透露了~~
于是,我就搞个程序玩,下了flash研究了下源码,配合firebug看看网络收发网络数据,惊奇的发现该网站维持用户会话是使用递增的ID,也就是说,我只要发个Cookie,带上userID,我就可以去提交积分了,连登录都不用登了。抽奖品也需要人品的,所以获不获奖是另外一码事,但写这样的程序还是有乐趣的~~
事后,我一想,如果是这样的话,那我岂不是可以伪造任何人的信息了么?因为Cookie可以用js来增删改的。
我随即验证了下,发现想法成立,然后我就再也不敢往下研究了。。。本来是娱乐玩,如果这样深入下去想搞破坏也不是难事。因为我可以遍历出所有用户的信息,然后,可以以这些用户的身份提交虚假信息。也就是说,我可以把中奖人的联系方式给改掉。提交成我的或者错误都有可能。但我不敢研究下去了。到此为止,这样下去,一是我品格不允许,二是可能会搞出事情来,毕竟我只是名普通的程序员,家有妻儿,我不要搞出什么事情来。。。
不知道是不是flash与后台交互时,这方面有什么障碍。我不太清楚网站方为何是用递增ID来维持会话的。
但不管怎样,请记住一点,千万不可用明码递增的标识来标识会话。太不安全,太危险了,后患无穷。至少也加个密是吧!
分享到:
相关推荐
这种技术在构建交互性强、用户体验良好的Web应用中十分有用,比如实现群聊和单聊功能。 一、DWR的基本概念与工作原理 1. **反向AJAX**:DWR的核心思想是反向AJAX,即由服务器主动推送数据到客户端,而不仅仅是...
2. **创建与管理会话**:开发者可以通过SDK创建和管理单聊会话,包括获取会话列表、发送与接收消息、删除会话等。 3. **消息类型支持**:融云SDK支持多种消息类型,如文本、语音、图片、文件、位置、表情等,满足...
融云支持单聊、群聊等多种会话类型: ```javascript RongIMClient.getInstance().createDiscussion({ name: '讨论组名称', userIdList: ['member1', 'member2'], success: function (discussion) { console....
在Web应用中,Spring MVC作为后端控制器框架,负责处理HTTP请求,而WebSocket则提供了一种与用户进行实时交互的方式。 要集成WebSocket到Spring MVC项目中,我们需要添加Spring WebSocket依赖,并配置WebSocket消息...
2. **Servlets**:可能包含处理用户请求的Java Servlets,比如接收和发送消息,管理用户会话等。 3. **数据库连接文件**:可能有JDBC(Java Database Connectivity)配置,用于存储和检索聊天记录。 4. **CSS和...
Java Web聊天室是一种基于Web技术实现的在线交流平台,...综上所述,Java Web聊天室的实现涉及了Java Web编程、WebSocket通信、用户会话管理、数据序列化、消息路由等多个方面的知识,是Web开发中的一个重要实践案例。
3. **会话管理**:创建、获取、删除单聊和群聊会话,以及会话中的消息记录。 4. **群组功能**:创建、管理群组,支持群公告、群成员管理等操作。 5. **实时音视频**:提供音视频通话功能,支持一对一和多对多的实时...
【标题】"仿碧聊客服问答系统 -ASP源码.zip" 涉及的主要知识点是ASP(Active Server Pages)编程技术,这是一种微软公司开发的服务器端脚本环境,用于创建动态网页或Web应用程序。该标题表明这是一个基于ASP的客服...
其语法结构与C语言和Perl相似,对初学者友好,易于学习和上手。 ... ...8. PDF 生成:通过PHP,可以生成PDF文档,这对于报表生成和电子文档...通过不断学习和实践,开发者可以利用PHP开发出更复杂、更实用的Web应用程序。
这个演示项目对学习Web应用开发和身份验证机制非常有用,你可以通过查看源码来了解实际的实现细节,包括如何存储和验证用户凭据、如何处理会话和令牌,以及如何保护特定的API路由。此外,如果你对Bouvet Afterhours...
总的来说,"web端qq聊天室"项目充分展示了SpringBoot在构建复杂Web应用中的强大能力,以及如何结合现代Web技术实现丰富的社交功能。通过这个项目,开发者可以深入理解后端开发流程,学习如何使用SpringBoot构建高效...
这可能涉及到用户标识、会话管理和消息路由的实现。 4. **前端页面成品工程**:这个工程可能包含HTML、CSS和JavaScript文件,用于展示聊天界面,包括输入框、发送按钮、聊天窗口等。前端页面需要与WebSocket连接...
【标题】"jsp简易聊天室搭建"涉及到的知识点...总的来说,"jsp简易聊天室搭建"项目涵盖了Web开发的核心技术,提供了多用户交互的示例,对于学习和理解JSP、Servlet、HTTP会话管理以及前端交互机制有很好的实践意义。
通过研究这个Java Web聊天程序的源码,你可以深入理解Web应用程序的生命周期、请求处理流程、以及如何实现WebSocket通信。同时,你还可以学习到如何将前后端有效地结合起来,创建一个功能完善的实时聊天系统。对于...
6. **会话管理**:包括查询会话列表、清除会话、设置会话未读消息数等功能,如`RongIMClient.getConversations()`、`RongIMClient.clearUnreadCount()`。 7. **用户信息管理**:通过`RongIMClient.getUserInfo()`...
【标题】:“javaweb支持群聊,单聊的聊天室” 这个项目是基于JavaWeb技术实现的一个在线聊天应用,...对于学习JavaWeb开发的初学者来说,这是一个很好的实践案例,可以帮助他们深入理解Web应用的开发流程和关键技能。
Web应用中的会话类似生活中的打电话,用户登录(拨号)、一系列的请求和响应(交流)、用户退出登录(挂断电话)。 我们在电话刚接通时(此手机无来电显示功能),首先会来一句,你好,我是XXX。两人互通暗号之后...
JavaWeb是Java技术在Web开发中的应用,它结合了Servlet、JSP(JavaServer Pages)等技术,用于构建动态、交互式的Web应用。在这个聊天室项目中,Servlet扮演着处理HTTP请求的角色,而JSP则用于生成动态网页内容。 ...
接下来,MySQL是一种关系型数据库管理系统,被广泛用于存储和管理聊天系统中的用户信息、聊天记录等数据。在聊天系统中,MySQL可以创建用户表来存储账户信息,聊天记录表来保存对话历史,以便用户可以查看和检索之前...
3. **多平台支持**:环信SDK支持iOS、Android、Web等多个平台,使得跨平台的聊天应用开发变得简单。 4. **权限管理**:提供了用户权限管理机制,可以控制用户的聊天权限,如禁言、屏蔽等。 5. **安全加密**:环信...