`

Java EE 6.0 的 Cookie 类已经有设置 HttpOnly 的方法

    博客分类:
  • java
阅读更多

一般的Cookie都是从document对象中获得的,现在浏览器在设置 Cookie的时候一般都接受一个叫做HttpOnly的参数,跟domain等其他参数一样,一旦这个HttpOnly被设置,你在浏览器的 document对象中就看不到Cookie了,而浏览器在浏览的时候不受任何影响,因为Cookie会被放在浏览器头中发送出去(包括ajax的时 候),应用程序也一般不会在js里操作这些敏感Cookie的,对于一些敏感的Cookie我们采用HttpOnly,对于一些需要在应用程序中用js操 作的cookie我们就不予设置,这样就保障了Cookie信息的安全也保证了应用。

如果你正在使用的是兼容 Java EE 6.0 的容器,如 Tomcat 7,那么 Cookie 类已经有了 setHttpOnly 的方法来使用 HttpOnly 的 Cookie 属性了。

1
cookie.setHttpOnly(true);

设置完后生成的 Cookie 就会在最后多了一个 ;HttpOnly

另外使用 Session 的话 jsessionid 这个 Cookie 可通过在 Context 中使用 useHttpOnly 配置来启用 HttpOnly,例如:

1
2
<Context path="" docBase="D:/WORKDIR/oschina/webapp"
    reloadable="false" useHttpOnly="true"/>

也可以在 web.xml 配置如下:

1
2
3
4
5
<session-config>
 <cookie-config>
  <http-only>true</http-only>
 </cookie-config>
<session-config>

对于 .NET 2.0 应用可以在 web.config 的 system.web/httpCookies 元素使用如下配置来启用 HttpOnly

1
<httpCookies httpOnlyCookies="true" …>

而程序的处理方式如下:

C#:

1
2
3
HttpCookie myCookie = new HttpCookie("myCookie");
myCookie.HttpOnly = true;
Response.AppendCookie(myCookie);

VB.NET:

1
2
3
Dim myCookie As HttpCookie = new HttpCookie("myCookie")
myCookie.HttpOnly = True
Response.AppendCookie(myCookie)

.NET 1.1 只能手工处理:

1
Response.Cookies[cookie].Path += ";HttpOnly";

PHP 从 5.2.0 版本开始就支持 HttpOnly

1
session.cookie_httponly = True
分享到:
评论

相关推荐

    cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip_js设置cookie值

    **Java设置HttpOnly Cookie** 在Java Web开发中,通常使用Servlet API来设置Cookie。以下是一个示例,展示了如何在响应头中添加带有HttpOnly属性的Cookie: ```java response.setHeader("Set-Cookie", "username=...

    cookie设置httpOnly和secure属性实现及问题

    ### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...

    Session Cookie的HttpOnly和secure属性

    如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...

    完整获取webBrowser1.Document.Cookie取不到HttpOnly的Cookie

    完整获取webBrowser1的Cookie HttpOnly的Cookie

    session配置secure和httpOnly

    2. 当设置`HttpOnly`后,如果应用中有使用Applet或JavaScript通过URLConnection与服务器交互的情况,可能需要额外处理。例如,Applet需要在启动时获取并传递Session ID,以确保后续的URLConnection请求能够正确携带...

    第九节 cookie的httponly设置-01

    Cookie 的 HttpOnly 设置详解 Cookie 是一种小型文本文件,由 Web 服务器保存在用户浏览器(客户端)上,用来存储用户信息。Cookie 通常用于辨别用户身份、进行 session 跟踪。Cookie 可以包含一些不敏感的信息,如...

    httpwebreqeust读取httponly的cookie方法

    但有时开发者需要在服务器端代码中处理这些`HttpOnly` Cookie,例如在使用`HttpWebRequest`类进行网络请求时。本文将详细介绍如何在C#中使用`HttpWebRequest`读取`HttpOnly`的Cookie。 首先,`HttpWebRequest`对象...

    Express中间件用于保护cookie通过HttpOnly并添加标记检查是否存在

    我们使用`res.cookie()`方法设置带有`HttpOnly`标志的cookie,并添加了一个名为`custom-flag`的标记。接着,我们检查`req.signedCookies`是否存在,并且对应的cookie是否包含这个标记。 `secure`标志确保在HTTPS...

    java中cookie的使用教程

    本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的作用。 1. **Cookie的基本概念** - **定义**:Cookie是服务器发送到用户浏览器并存储在本地的一小块数据,当...

    .net 获取浏览器Cookie(包括HttpOnly)实例分享.docx

    FullWebBrowserCookie 类中,我们定义了一个名为 GetCookieList 的方法,该方法将获取指定 URL 的 Cookie。该方法使用 InternetGetCookieExW 函数来获取 Cookie,并将其存储在一个字典中。 在 GetCookieList 方法中...

    JAVA100例之实例81Cookie计数器

    在Java编程中,Cookie是一种非常重要的技术,它用于在客户端和服务器之间传递信息,尤其是在实现用户会话管理、个性化设置等方面。"JAVA100例之实例81Cookie计数器"是一个典型的示例,旨在教会开发者如何使用Cookie...

    Test_dl.rar_cookie_cookie java_cookies_java cookie

    标题中的“Test_dl.rar_cookie_cookie java_cookies_java cookie”暗示了一个关于Java编程中处理Cookie的教程或项目,可能涉及网络登录验证。描述进一步说明了这个压缩包包含的信息,它提到了如何利用Cookie进行自动...

    PHP设置Cookie的HTTPONLY属性方法

    当一个Cookie被设置为HTTPOnly时,JavaScript的Document.cookie API和其他通过JavaScript可以访问Cookie的方法将无法读取或修改这个Cookie。这在一定程度上降低了通过跨站脚本攻击(XSS)窃取用户Cookie的风险。 PHP...

    java cookie 读写,记住密码 自动登录

    在Java Web开发中,Cookie是客户端存储数据的一种方式,它用于在用户浏览器和服务器之间传递信息,实现会话管理、个性化设置等功能。本主题将详细讲解如何使用Java进行Cookie的读写操作,以及如何利用Cookie实现记住...

    discuz与java通过cookie共享登陆

    5. **会话管理**:为了安全,Java应用可能会有自己的会话管理系统,这时需要将从Discuz接收到的Cookie信息转化为Java应用的会话ID,或者维护一个映射关系,确保用户在Java应用中的行为也能根据Discuz的登录状态同步...

    .net 获取浏览器Cookie(包括HttpOnly)实例分享

    这个方法比标准的`HttpWebRequest`和`WebClient`类中的方法具有更高的灵活性,可以获取HttpOnly Cookie。 代码中的枚举类型`InternetFlags`包含了与Cookie获取相关的标志,比如`INTERNET_COOKIE_HTTPONLY`,它标记...

    java对cookie的操作

    在Java中获取Cookie也非常简单,可以通过请求对象中的`getCookies()`方法来获取所有的Cookie数组,然后遍历这个数组来查找特定的Cookie: ```java Cookie[] cookies = request.getCookies(); if (cookies != null) ...

    Java读写cookie源码.docx

    `Cookie`类还有其他一些重要的属性,如`setMaxAge(int seconds)`用于设置Cookie的生命周期(以秒为单位),`setPath(String path)`用于指定Cookie的作用路径,`setDomain(String domain)`用于设置Cookie的适用域名...

    mvc中cookie安全

    2. **ASP.NET MVC中的Cookie操作**:在MVC应用中,可以使用`HttpResponse`对象的`SetCookie()`方法来创建和设置Cookie,或者使用`HttpRequest`对象的`Cookies`集合来读取Cookie。例如,创建一个Cookie: ```csharp ...

    Extjs 关于 cookie的操作

    1. **读取 Cookie 中的数据**:使用 `cookie.get(saveCookieId)` 方法获取指定名称的 Cookie 数据。 2. **解析 JSON 数据**:将读取的 JSON 字符串解析为对象,并遍历这些数据,将其填充到对应的表单元素中。 示例...

Global site tag (gtag.js) - Google Analytics