精华内容
下载资源
问答
  • 下面小编就为大家带来一篇httpwebreqeust读取httponly的cookie方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇PHP设置Cookie的HTTPONLY属性方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下
  • HttpOnly

    2021-06-07 15:21:05
    HttpOnly是微软公司的Internet Explorer 6 SP1引入的一项新特性。这个特性为cookie提供了一个新属性,用以阻止客户端脚本访问Cookie,至今已经称为一个标准,几乎所有的浏览器都会支持HttpOnly。 下面示例显示了HTTP...

    HttpOnly是微软公司的Internet Explorer 6 SP1引入的一项新特性。这个特性为cookie提供了一个新属性,用以阻止客户端脚本访问Cookie,至今已经称为一个标准,几乎所有的浏览器都会支持HttpOnly。
    下面示例显示了HTTP响应标头中HttpOnly使用的语法:

    Set-Cookie: <name>=<value>[; <Max-Age>=<age>]
    `[; expires=<date>][; domain=<domain_name>]
    [; path=<some_path>][; secure][; HttpOnly]
    

    如果HTTP响应标头包含HttpOnly,则无法通过客户端脚本访问Cookie;因此,即使系统存在跨站脚本攻击,并且用户不小心访问了利用此缺陷的链接,浏览器也不会将Cookie泄露给第三方。
    如果支持HttpOnly的浏览器检测到包含HttpOnly标志的Cookie,并且客户端脚本代码尝试读取Cookie,则浏览器将返回一个空字符串作为结果,以阻止XSS代码将数据发送到攻击者的网站,从而导致攻击失败。

    使用 Java 设置 HttpOnly:
    从采用 Java Servlet 3.0 技术的 Java Enterprise Edition 6 (JEE6) 开始,就可以在 cookie 上以编程方式设置 HttpOnly 标志。JEE6、JEE7 都可以通过isHttpOnly方法设置HttpOnly :

    cookie.setHttpOnly(true);
    

    此外,从 JEE 6 开始,HttpOnly 通过以下配置,去设置HttpOnly:

    <session-config>
       <cookie-config>
        <http-only>true</http-only>
       </cookie-config>
    </session-config>
    

    对于JEE 6之前的Java Enterprise Edition 版本,常见的解决方法是:SET-COOKIE,使用会话cookie值覆盖HTTP响应标头,该值显式附加HttpOnly标志:

    String sessionid = request.getSession().getId();
    // be careful overwriting: JSESSIONID may have been set with other flags
    response.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; HttpOnly");
    

    在这种情况下,尽管对HttpOnly 标志合适,但不鼓励覆盖,因为 JSESSIONID 可能已设置为其他标志。更好的解决方法是处理先前设置的标志或使用ESAPI#Java_EE库,我们可以编写一个 servlet 过滤器,如下所示:SecurityWrapperResponse

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        // if errors exist then create a sanitized cookie header and continue
        SecurityWrapperResponse securityWrapperResponse = new SecurityWrapperResponse(httpServletResponse, "sanitize");
        Cookie[] cookies = httpServletRequest.getCookies();
        if (cookies != null) {
            for (int i = 0; i < cookies.length; i++) {
                Cookie cookie = cookies[i];
                if (cookie != null) {
                    // ESAPI.securityConfiguration().getHttpSessionIdName() returns JSESSIONID by default configuration
                    if (ESAPI.securityConfiguration().getHttpSessionIdName().equals(cookie.getName())) {
                        securityWrapperResponse.addCookie(cookie);
                    }
                }
            }
        }
        filterChain.doFilter(request, response);
    }
    

    一些实现JEE5的Web应用程序服务器和实现Java Servlet 2.5(JEE 5 的一部分)的servlet 容器也允许创建HttpOnly会话cookie:
    Tomcat 6在context.xml设置的Context属性useHttpOnly 如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/myWebApplicationPath" useHttpOnly="true">
    JBoss 5.0.1和JBOSS EAP 5.0.1在 server <myJBossServerInstance> \deploy\jbossweb.sar\context.xml 设置SessionCookie标签 5如下:
    <Context cookies="true" crossContext="true">
        <SessionCookie secure="true" httpOnly="true" />
    

    IBM Websphere为会话 cookie 提供 HTTPOnly 作为配置选项,使用 .NET 设置 HttpOnly,在 .NET 2.0 中,还可以通过 HttpCookie 对象为所有自定义应用程序 cookie 设置 HttpOnly。

    <httpCookies httpOnlyCookies="true"> 
    

    或以编程方式
    C# 代码:

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

    VB.NET 代码:

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

    但是,在.NET 1.1 中,必须手动执行此操作:

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

    使用 Python 设置 HttpOnly:
    要在 Cherrypy 会话中使用 HTTP-Only cookie,只需在配置文件中添加以下行:

     tools.sessions.httponly = True 
     如果使用 SLL,还可以避免中间人攻击:
      tools.sessions.secure = True
    

    使用 PHP 设置 HttpOnly:
    PHP 从 5.2.0 开始支持设置 HttpOnly 标志,对于由 PHP 管理的会话 cookie,通过在php.ini中设置HttpOnly:

    session.cookie_httponly = True
    

    或通过函数:

    void session_set_cookie_params  ( int $lifetime  [, string $path  [, string $domain[, bool $secure= false  [, bool $httponly= false  ]]]] )
    

    对于应用程序 cookie, setcookie() 中的最后一个参数设置 HttpOnly :

    bool setcookie  ( string $name  [, string $value  [, int $expire= 0  [, string $path[, string $domain  [, bool $secure= false  [, bool $httponly= false  ]]]]]] )
    

    Web 应用程序防火墙:
    如果代码更改不可行,可以使用 Web 应用程序防火墙将 HttpOnly 添加到会话 cookie:

    Mod_security - 使用 SecRule 和 Header 
    ESAPI WAF 9 使用add-http-only-flag 
    
    展开全文
  • java后台和php后台如何设置HttpOnly到前台浏览器的cookie中.cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip
  • xss的概念就不用多说了,它的危害是极大的,这就意味着一旦你的网站出现xss漏洞,就可以执行任意的js代码,最可怕的是攻击者利用js获取cookie或者session劫持,如果这里面包含了大量敏感信息(身份信息,管理员信息)...
  • 该文档整合了cookie的httponly和secure的简介,已经设置该属性时会遇到的问题,以及设置属性的方式
  • 如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...
  • Set-Cookie: JSESSIONID=8AB51DC4244907FD9EBB063C7FD73CBA; Path=/; HttpOnly 解决此类cookie暴露项目路径问题
  • java设置httponly

    2021-04-18 02:38:07
    //末尾0表示未设置httponly表中,1表示设置该位 规范编码......java项目部署指南_IT/计算机_专业资料。部署安装手册 1.0 目第一章 、简单安装部署 录 1、JDK 安装和配置 2、Tomcat 的安装和配置 ...

    ()+3600*24,"","",0); setcookie("TestCookie","abcdef",time()+3600*24,"","",1); ?> //末尾0表示未设置httponly表中,1表示设置该位 规范编码......

    java项目部署指南_IT/计算机_专业资料。部署安装手册 1.0 目第一章 、简单安装部署 录 1、JDK 安装和配置 2、Tomcat 的安装和配置 A)5.5 A)5.5 版的......

    httpOnly 是 cookie 的扩展属性,并不包含在 servlet2.x 的规范里,因此一些 javaee 应用服务器并不支持 httpOnly,针对 tomcat,>6.0.19 或者>5.5.28 的版本......

    (”http:”,”",”width=400,height=300″); //设置弹出窗口的大小 Set(); } //–> 2、可设置同一 IP 弹出窗口次数和......

    Cookie 可以由服务端和 js 读写(如果设置了 HttpOnly 的话 j...

    java response.setHeader 用法 meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的与中 1、

    JavaGC调优手记_计算机软件及应用_IT/计算机_专业资料。java gc 调优转自http:///firecoder/article/details/7225654 摘要 本文记录 GC 调试的一次实......

    设置 Cookie 的过期时间,秒为单位,默认-1 表示关闭浏览器时过期 Cookie; sessionIdCookie.httpOnly:如果设置为 true,则客户端不会暴露给客户端脚本代码,使用 Http......

    ServletContext HttpSession ServletRequest Set/removeArrtibute Jsp:是 web 服务器存储的基于文本的文档,java 服务器页面 Jsp 执行流程:翻译===编译===运行最新生......

    httponly Content-Type: tex t/html; char ...

    对于存放敏感信息的Cookie, 如用户认证信息等,可通过对该Cookie添加 HttpOnly属性,避免被攻击脚本窃取。 注入攻击 获取数据库表结构信息的手段开源:如果网站采用开源......

    ("Set-Cookie", "name=value; HttpOnly");//设置 HttpOnly 属性,防止 Xss 21 攻击 response.setDateHeader("Expire", 0); RandomValidateCode randomValidate......

    false <......>

    false <......>

    展开全文
  • Express 中间件用于保护cookie通过HttpOnly并添加标记检查是否存在
  • java服务器端获取Cookie的httpOnly的值总是false,奇怪了?

    名称叫JSESSIONID的Cookie,HttpOnly明明是true,服务器端获取的HttpOnly的值始终是false

    Java操作Cookie方法

    请求头cookie 的 httpOnly 问题

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>javascript读取不到httpOnly属性值等于true的cookie</title>
    <script type="text/javascript">
    window.onload = function() {
    	var divNode = document.getElementById("showCookie");
    	divNode.innerHTML = "cookie如下:<br/>" + document.cookie;
    }
    </script>
    </head>
    <body style="background-color: #CCE8CF;">
    <h2>javascript读取不到httpOnly属性值等于true的cookie</h2>
    <div id="showCookie" style="background-color: Wheat; height: 200px;">
    </div>
    </body>
    </html>

    package com.test.servlet;
    
    import java.io.IOException;
    import java.util.Enumeration;
    import java.util.UUID;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 测试Cookie的HttpOnly
     */
    @WebServlet("/TestCookie")
    public class TestCookie extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    //		String header = response.getHeader("Set-Cookie");
    //		System.out.println(header);
    		Cookie[] cookies = request.getCookies();
    		if (cookies != null) {
    			for (Cookie cookie : cookies) {
    				System.out.println(cookie.getName() + "=" + cookie.getValue() +",httpOnly=" + cookie.isHttpOnly());
    				System.out.println("Domain=" + cookie.getDomain() + ",Path=" + cookie.getPath());
    				System.out.println("-------------------------");
    			}
    		} else {
    			Cookie cookie = new Cookie("access_token", UUID.randomUUID().toString());
    			cookie.setHttpOnly(false);
    			cookie.setPath("/");
    			cookie.setDomain("localhost");
    			response.addCookie(cookie);
    			response.sendRedirect("http://localhost:8888" + request.getContextPath() + "/js.html");
    		}
    		
    		// 获取所有请求头的名称
    		Enumeration<String> headerNames = request.getHeaderNames();
    		while(headerNames.hasMoreElements())
    		{
    		    String headerName = headerNames.nextElement();
    		    // 获取每个请求、及其对应的值
    		    System.out.println(headerName + " = " + request.getHeader(headerName));
    		        
    		}
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    	}
    
    }
    

    访问http://localhost:8888/javaScript2021/TestCookie这个Servlet地址,运行结果如下: 

    access_token=3334b9fe-dcfe-4167-833f-92c9bd1210a9,httpOnly=false
    Domain=null,Path=null
    -------------------------
    test_token=cc50861e-1682-4e7c-9a43-a2caacd9c57c,httpOnly=false
    Domain=null,Path=null
    -------------------------
    my_id=8173206f-df14-4b35-8451-a883bae03de9,httpOnly=false
    Domain=null,Path=null
    -------------------------
    host = localhost:8888
    connection = keep-alive
    cache-control = max-age=0
    dnt = 1
    upgrade-insecure-requests = 1
    user-agent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
    accept = text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    sec-fetch-site = none
    sec-fetch-mode = navigate
    sec-fetch-user = ?1
    sec-fetch-dest = document
    accept-encoding = gzip, deflate, br
    accept-language = zh-CN,zh;q=0.9
    cookie = access_token=3334b9fe-dcfe-4167-833f-92c9bd1210a9; test_token=cc50861e-1682-4e7c-9a43-a2caacd9c57c; my_id=8173206f-df14-4b35-8451-a883bae03de9
    

     java服务器端获取Cookie的httpOnly的值总是false,奇怪了? 

    cookie是通过请求头中的cookie字段发送到服务器的,服务器解析这段cookie字符串,封装成Cookie[],而浏览器发送cookie时只会发送key-value,所以Cookie其他的字段都是默认值,boolean默认是false。

    展开全文
  • JAVA设置HttpOnly Cookies

    2021-02-12 18:34:34
    HttpOnly Cookies是一个cookie安全行的解决方案。在支持HttpOnly cookies的浏览器中(IE6+,FF3.0+),如果在Cookie中设置了"HttpOnly"属性,那么通过JavaScript脚本将无法读取到Cookie信息,这样能有效的防止XSS攻击...

    HttpOnly Cookies是一个cookie安全行的解决方案。

    在支持HttpOnly cookies的浏览器中(IE6+,FF3.0+),如果在Cookie中设置了"HttpOnly"属性,那么通过JavaScript脚本将无法读取到Cookie信息,这样能有效的防止XSS攻击,让网站应用更加安全。

    但是J2EE4,J2EE5 的Cookie并没有提供设置 HttpOnly 属性的方法,所以如果需要设置HttpOnly属性需要自己来处理。

    import javax.servlet.http.Cookie;

    import javax.servlet.http.HttpServletResponse;

    public class CookieUtil {

    /**

    * 设置HttpOnly Cookie

    * @param response HTTP响应

    * @param cookie Cookie对象

    * @param isHTTPOnly 是否为HttpOnly

    */

    public static void addCookie(HttpServletResponse response, Cookie cookie, boolean isHttpOnly) {

    String name = cookie.getName();//Cookie名称

    String value = cookie.getValue();//Cookie值

    int maxAge = cookie.getMaxAge();//最大生存时间(毫秒,0代表删除,-1代表与浏览器会话一致)

    String path = cookie.getPath();//路径

    String domain = cookie.getDomain();//域

    boolean isSecure = cookie.getSecure();//是否为安全协议信息

    StringBuilder buffer = new StringBuilder();

    buffer.append(name).append("=").append(value).append(";");

    if (maxAge == 0) {

    buffer.append("Expires=Thu Jan 01 08:00:00 CST 1970;");

    } else if (maxAge > 0) {

    buffer.append("Max-Age=").append(maxAge).append(";");

    }

    if (domain != null) {

    buffer.append("domain=").append(domain).append(";");

    }

    if (path != null) {

    buffer.append("path=").append(path).append(";");

    }

    if (isSecure) {

    buffer.append("secure;");

    }

    if (isHttpOnly) {

    buffer.append("HTTPOnly;");

    }

    response.addHeader("Set-Cookie", buffer.toString());

    }

    }

    值得一提的是,Java EE 6.0 中 Cookie已经可以设置HttpOnly了,所以如果是兼容 Java EE 6.0 的容器(例如如 Tomcat 7),可以直接使用Cookie.setHttpOnly 的方法来设置HttpOnly:

    cookie.setHttpOnly(true);

    展开全文
  • cookie 设置 httpOnly属性

    2021-02-12 21:47:56
    cookie 设置 httpOnly属性防止js读取cookie.建立filter拦截器类CookieHttpOnlyFilterimportjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;...
  • 获取 httponly 的 cookie

    2021-03-15 18:22:28
    /// /// WinInet.dll wrapper/// internal static class CookieReader{/// /// Enables the retrieval of cookies that are marked as "HTTPOnly"./// Do not use this flag if you expose a scriptable interface,/...
  • HttpOnly是个什么鬼

    2021-03-22 11:22:02
    写这篇的目的是,今天群里面提到了HttpOnly这个标签,所以专门的mark了下。谁 在什么时候发明了HttpOnly2002年微软为ie6的sp1创造了HttpOnly什么是HttpOnlyHttpOnly是包含在http返回头Set-Cookie里面的一个附加的...
  • 为了解决XSS(跨站脚本***)的问题,从IE6开始支持cookie的HttpOnly属性,这个属性目前已被大多数浏览器(IE、FF、Chrome、Safari)所支持。当cookie中的HttpOnly属性被设置为true时,前端脚本JavaScript就无法访问或...
  • php设置httponly的方法

    2021-04-08 11:44:15
    php设置httponly的方法发布时间:2020-08-13 09:55:27来源:亿速云阅读:92作者:小新小编给大家分享一下php设置httponly的方法,希望...然后设置“session.cookie_httponly”项的值为1或者TRUE;接着通过“setrawc...
  • 由于我没有设法登录,我使用Fiddler检查了登录请求附带的cookie,发现一些cookie被标记为HttpOnly . 也就是说,这些cookie不会出现在先前请求的任何响应头中(不用说它们也不会出现在脚本中(html或js)) . 我做了...
  • HttpOnly的设置

    千次阅读 2019-09-23 16:56:36
    1.会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本、Applet等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。 2.HttpOnly是微软对cookie做的扩展,该值指定cookie...
  • 应用上线,需要修复安全问题,需要为 Cookie 设置 “HttpOnly” 和 “Secure” 属性。 HttpOnly 设置方法 配置 默认值 说明 server.servlet.session.cookie.http-only true 是否对会话 cookie 使用 ...
  • HttpOnly 安全性 设置以后客户端脚本就无法通过 document.cookie 等方式获取。 有助于避免 XSS 攻击。 Secure 安全性 设置以后客户端只有 HTTPS 协议下才会发送给服务端。 使用 HTTPS 安全协议,可以保护 Cookie 在...
  • 服务端建立的Cookie如果没有设置HttpOnly属性,则在客户端可以用js读取Cookie中的内容(客户端脚本可以读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击);方法:为HttpSession安全性考虑,防止客户端脚本读取...
  • 浏览器中明明有HttpOnly等于true的Cookie,可是从服务器端获取的所有的Cookie的HttpOnly的值都是false! 我的环境是谷歌浏览器 + tomcat7 + eclispe 我是访问一个servlet,然后在servlet中转发到某个jsp页面,...
  • 什么是HttpOnly? 如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索。 介绍 PHP设置COOKIE的HttpOnly属性 作用:仅仅是防止...
  • 一、HttpOnly的简介 HttpOnly是Cookie中一个属性,用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HttpOnly的应用仍存在局限性,一些浏览器可以阻止...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,503
精华内容 11,001
关键字:

httponly