A:Tomcat 中维持Java webapp的Http会话是以Cookie形式实现的存储在服务端用户状态信息的;
B:服务端可以自定义建立Cookie对象及属性传递到客户端;
服务端建立的Cookie如果没有设置HttpOnly属性,则在客户端可以用js读取Cookie中的内容(客户端脚本可以读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击);
方法:
为HttpSession安全性考虑,防止客户端脚本读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击,可在tomcat6的conf/context.xml配置文件中配置:
<Context useHttpOnly="true">
为自定义Cookie及属性添加HttpOnly属性,在Set-Cookie头部信息设置时可以添加“HttpOnly”
验证:
1,抓包验证任意http响应的内容,确实任意客户端请求的回应包含“Set-Cookie: JSESSIONID=717C91AF20E245B100EEFBF5EDDB29C3; Path=/monitor; HttpOnly”:
GET /monitor/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)
Accept-Encoding: gzip, deflate
Host: 192.168.245.1
Connection: Keep-Alive
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=717C91AF20E245B100EEFBF5EDDB29C3; Path=/monitor; HttpOnly
Set-Cookie: lang=zh; HttpOnly
Content-Type: text/html;charset=UTF-8
Content-Length: 2518
Date: Wed, 20 Jul 2016 08:14:42 GMT
2,在浏览器端调试js脚本,确实使用document.cookie读取在服务端设置的Cookie对象时,读取内容为空:
document.cookie ""
相关推荐
### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...
如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...
例如,在某些 Web 应用程序中,如果 Cookie 中的路径属性设置为当前项目的路径,那么攻击者可以通过分析 Cookie 中的路径属性来获取项目路径,从而实施攻击。 解决思路 解决 Cookie 路径属性暴露问题有两种思路...
`会根据名为`session`的cookie值来确定请求应发送到哪个服务器,从而实现会话粘滞,保证同一用户的请求被连续发送到同一台Tomcat服务器。 **安装和配置Tomcat** 1. 下载Tomcat并解压到指定目录。 2. 修改`conf/...
它可以配置为将请求智能地分发到集群中的各个Tomcat实例,实现会话持久化(粘性会话)或者根据特定算法(如轮询、最少连接数等)进行负载均衡。 - **配置Nginx**:在Nginx配置文件中,可以定义一个upstream块来指定...
- 配置Tomcat的`context.xml`文件,设置session的存储策略为Redis,并提供Redis服务器的连接参数。 - 对于Tengine,配置负载均衡规则,启用基于cookie的Session黏滞策略,确保相同Session的请求始终发送到同一台...
上述web.xml配置中,`memcachedNodes`指定了Memcached服务器的地址,`sessionBackupAsync`控制是否异步备份,`sessionMode`设置为"sticky"表示粘滞会话,使得同一用户的请求总是被转发到同一台服务器,以减少session...
4. **删除Cookie**:删除Cookie是通过创建一个具有相同名称但值为空且过期时间设为过去的Cookie完成的。这样,浏览器在下次访问时会发现该Cookie已过期,从而将其移除。 5. **安全性和隐私**:由于Cookie可以被第三...
同时,Tomcat 需要在 `server.xml` 文件中的 `Context` 元素内启用 `sessionCookiePath` 和 `useHttpOnly` 属性: ```xml name="JSESSIONID" path="/" httpOnly="true"/> ``` 这样,Nginx 将会根据 ...
3. 修改`conf.d/xiaoxin.conf`,设置会话共享: ```nginx location /session { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-...
安全性方面,bboss会话共享通过在客户端基于cookie机制存储sessionid,并设置cookie的HttpOnly属性来防止XSS攻击窃取sessionid,通过设置Secure属性并在HTTPS环境下传输来防止sessionid被窃取。同时,还提供会话信息...
- **安全性考虑**:为了提高安全性,可以设置cookie的HttpOnly标志,防止JavaScript脚本访问cookie内容。 2. **Broker-based(基于中介)**:这是一种更通用的方法,其中SSO系统充当一个中介或认证服务器,负责...
可以使用预编译的SQL语句、过滤输入数据、设置HttpOnly Cookie等方式提高安全性。 6. **权限控制** 不同角色(学生、教师、管理员)有不同的权限,系统应实现角色-权限(RBAC)模型,确保用户只能访问他们被授权的...
- Cookie是客户端存储数据的技术,通过HttpOnly和Max-Age属性可控制其保存时间。 - 会话ID用于识别特定的客户端会话,存储在Cookie或URL参数中。 - 在JSP中实现拒绝访问可通过设置访问控制,如`...
可以使用预编译的JSP防止SQL注入,使用HTTPOnly Cookie防止Cookie劫持,对用户输入进行过滤或转义以防止XSS攻击。 8. **性能优化**: 为了提高系统性能,可以采用缓存策略,如使用Ehcache缓存常用数据;进行数据库...
开发者需要对输入进行验证,使用预编译的SQL语句(PreparedStatement),设置HttpOnly Cookie等措施来保护系统安全。 **7. 模板引擎** 为了提高代码可读性和可维护性,有时会在JSP之上使用模板引擎(如FreeMarker...
-- 配置存储rememberMe Cookie的domain为 一级域名 --> <property name="maxAge" value="2592000"/><!-- 30天时间,记住我30天 --> 记住我登录的信息配置。和上面配置是一样的道理,可以在相同 一级...
使用HttpOnly cookie防止JavaScript访问,验证请求来源以避免CSRF。 2. 性能优化:合理设置缓存策略,减少不必要的数据库查询;使用CDN(内容分发网络)加速静态资源加载;通过GZIP压缩减少网络传输大小。 五、...
SSM框架提供了多种安全措施,例如使用预编译的SQL防止SQL注入,使用HttpOnly cookie来防止XSS攻击,还可以结合Spring Security或Apache Shiro进行更深度的身份验证和授权。 6. **用户体验**:为了提升用户使用体验...