HTTP协议没有状态,使用会话来区分每个用户,每个用户有一个会话令牌或者是标识符
在服务器端通过散列表保存每个用户的信息,散列键为会话令牌
大多数程序使用HTTP Cookie 作为服务器与客户端传送会话令牌的机制
服务器给新客户发送
Set-Cookie:ASP.NET_SessionId=magjk3323jkl232323
客户随后提出的请求中发送
Cookie: ASP.NET_SessionId=magjk3323jkl232323
还有些应用程序通过几个不同的数据来组成令牌,包括cookie、URL参数和隐藏表单字段
有些令牌具有一定意义 可能以一定形式转化过来(电子邮件,IP地址,用户名日期等)
有些应用程序在登录阶段使用HTTPS包含用户证书的安全(用户名密码)但在用户会话的其他阶段转而使用HTTP,这样是不正确的,可能被截获会话。应该使用HTTPS加密会话 来保证安全性
有些应用程序在站点首页使用HTTP,而从登录页面开始使用HTTPS,然后许多应用程序在用户访问第一个页面开始就发布给用户一个令牌,然后在用户登录后不更改令牌,那么有可能在登录前就被攻击者拦截令牌,而可以进行攻击。
即使HTTPS来访问页面,但是用户使用后退或者直接输入URL访问HTTP的页面(如登录前的页面)或者用户把HTTPS的页面修改URL输成HTTP,有可能会泄露令牌
如果令牌使用Cookie传输,应该加上secure标记。
有些应用程序使用URL查询字符串来传递令牌而不是使用HTTP Cookiehuozhe POST请求主体来传输令牌
Http://www.yahoo.com/jsessionID=kjdkflj234kljdfjdklfj
使用URL查询字符串来出传递令牌,可能导致会话令牌出现在各宗为授权用户可以访问的系统日志中
用URL传递令牌,会导致攻击者向用户发送一封邮件,包含他控制的Web服务器链接,用户访问这个链接,攻击者就能实时收到该用户的访问令牌,
静态令牌和并行会话都会造成漏洞
会话未正常退出也会造成漏洞
应用程序可能仅仅清空客户端Cookie,而没有删除服务端的会话信息
Cookie 的domain 和path属性
Cookie 如果域设置过大,可能会导致漏洞
如把domain设置为wahh-blogs.com
而每个用户都有一个blog子域时
herman,.wahh-blogs.com
soleao. wahh-blogs.com
cookie被自动提交到这个范围内的每一个子域
当一名登陆过的用户访问其他用户的博客,它的会话令牌将与请求一起提交,如果允许博客作者在自己的博客中插入恶意javascript脚本,那么将可以窃取用户会话令牌。
位于/apps/secure/foo-app/index.jsp的应用程序建立一个cookie后,浏览器默认会将cookie重新提交到路径/apps/secure/foo-app及任何子目录,但是可以使用path设置目录 例如 path=/apps
分享到:
相关推荐
### 白帽子讲Web安全读书笔记一:关键知识点解析 #### 第零篇 总览 - **客户端脚本安全**:这部分主要关注浏览器环境下的安全问题,包括浏览器自身的安全机制以及用户与网页交互过程中可能遇到的安全风险。 - **...
本读书笔记主要聚焦于如何利用Flask框架进行Web应用开发,特别是针对读书笔记管理的应用。Flask提供了一个强大的基础,允许开发者快速构建功能丰富的Web服务,而无需过于复杂的配置和代码。 【描述】基于FLASK开发...
《Java高手真经:Java Web高级开发技术》读书笔记模板.pptx 本资源为《Java高手真经:Java Web高级开发技术》读书笔记模板,涵盖了Java EE开发中的各种分布式与业务核心技术。该资源分为三部分,分别是Java高手真经...
3. JSP内置对象:如`request`, `response`, `session`, `pageContext`等,它们提供了与HTTP请求、响应、会话和上下文相关的功能。 4. JSP表达式(Expressions):`<%= %>`用于输出变量或表达式的结果到页面。 5. JSP...
6. **会话管理**:用户登录与注册涉及到会话管理,理解session和cookie的概念及其在维持用户状态中的作用,防止会话劫持和会话固定攻击。 7. **验证码技术**:Java实现随机验证码涉及图像处理、随机数生成和字符...
- **JWT(JSON Web Token)**:可能用于实现用户认证和授权,提供安全的会话管理。 4. **系统功能**: - **用户注册与登录**:用户可以通过注册新账号或登录已有账号来访问系统。 - **笔记上传**:用户可以创建...
- context.xml:每个Web应用的上下文配置,如数据源、会话超时等。 3、配置虚拟主机 虚拟主机允许在单个Tomcat实例上运行多个独立的Web站点。 3.1、基于主机名称的虚拟主机配置 在server.xml的Host元素中,通过...
3. **EJB 3.0**:EJB3是J2EE5中的重大更新,它简化了EJB的创建和管理,通过注解和接口方式,使开发者能更容易地创建业务逻辑组件。例如,`@Stateless`、`@Stateful`和`@MessageDriven`注解分别用于无状态会话bean、...
这篇读书笔记将深入探讨这三个框架的核心概念、功能以及它们之间的协同工作方式。 **Struts框架** Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于处理Web应用的业务逻辑和控制流程。它的核心...
在读书笔记中,我们可以期待学习到以下几个关键知识点: 1. **MVC架构模式**:MVC是一种流行的设计模式,用于分离应用程序的业务逻辑、用户界面和数据管理。模型(Model)负责数据处理和业务逻辑,视图(View)负责...
会话控制是Web应用中保持用户状态的关键技术。本章将介绍如何使用PHP的session功能来跟踪用户会话,以及会话的生命周期和安全问题。 ### 第9章:Cookie技术 Cookie是另一种存储客户端信息的方式。本章将讨论如何...
3. **Session**(会话):每个HTTP会话都有一个对应的bean实例。 4. **Request**(请求):每个HTTP请求都有一个对应的bean实例。 可以通过`@Scope`注解或在XML配置中指定`scope`属性来设置bean的作用域。 #### 六...
- **会话Bean**:代表一次用户会话,处理客户端请求,不持久化状态。 - **实体Bean**:表示数据库中的持久化对象,实现业务对象的CRUD操作。 - **消息驱动Bean**:处理来自消息队列的消息,适用于异步处理。 4. ...
在IT行业中,J2EE(Java 2 Platform, Enterprise Edition)是用于构建企业级应用程序的框架,它由Oracle公司提供并被广泛应用于大型分布式系统、Web应用和后端服务的开发。本实录将深入探讨J2EE开发的全过程,包括但...
#### 1.13《How Tomcat Works》读书笔记(三): Tomcat default connector - **默认Connector**:默认情况下,Tomcat会配置一个HTTP/1.1 Connector,用于处理HTTP请求。 - **配置细节**:讲解了如何配置默认...
3. **Express**:Express是基于Connect构建的一个更高级的Web应用框架。它简化了路由、模板引擎和中间件的使用。在不同版本的Express中,API可能会有所变化,如3.0及以后版本中,`createServer()`方法被替换为直接...
在《Head First Servlet & JSP》中,你会了解到如何创建Servlet,包括Servlet生命周期、服务方法、初始化参数、会话管理以及如何在Servlet间进行协作。 JSP则是另一种用于生成动态网页的技术,它将HTML模板与Java...
3. **JSP指令**:例如page、include和taglib指令,它们用来设置页面属性、包含其他文件或引入自定义标签库,是增强JSP功能的关键。 4. **EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library...