首页 > 编程知识 正文

jsonp解决跨域问题,httponly怎么读

时间:2023-05-05 17:50:44 阅读:40609 作者:2809

HttpOnly是微软Internet Explorer 6 SP1中引入的新功能。 此功能为cookie提供新属性,以防止客户端脚本访问cookie。 到目前为止被称为标准,大多数浏览器都支持HttpOnly。

以下示例说明HTTP响应标头中的HttpOnly使用的语法。

Set-Cookie: name=value[; Max-Age=age]`[; expires=date][; 域=域_名称] [; path=some_path][; 安全] [; httponly如果http响应标头包含httponly,则客户端脚本无法访问Cookie。 因此,即使系统受到跨站点脚本攻击,用户意外访问使用此缺陷的链接,浏览器也不会将Cookie泄露给第三方。

如果支持HttpOnly的浏览器检测到包含HttpOnly标志的cookie,并且客户端脚本代码尝试读取cookie,则浏览器返回空字符串,阻止XSS代码将数据发送到攻击者的网站

使用Java设置HttpOnly :

通过采用Java servlet 3.0技术的Javaenterpriseedition6(JEE6),可以以编程方式在cookie上设置HttpOnly标志。 JEE6和JEE7都可以在isHttpOnly方法中设置HttpOnly。

cookie.sethttponly(true; 此外,从JEE 6开始,HttpOnly在以下配置中设置HttpOnly :

针对JEE 6或更早版本的Java企业版的ession-config cookie-config http-only true/http-only/cookie-config/session-only

string session id=request.getsession ().getId ); //be careful overwriting 3360 jsessionidmayhavebeensetwithotherflagsresponse.setheader (' set-cookie ',' jsessionid=' hessionid ) 在这种情况下,不鼓励覆盖,因为JSESSIONID可能被设置为其他标志,尽管它适用于HttpOnly标志。 更好的解决方法是处理以前设置的标志或使用ESAPI#Java_EE库。 可以按如下方式创建servlet过滤器: 安全wrapperresponse

publicvoiddofilter (servletrequestrequest,servlet响应响应,过滤器通道过滤器通道) throws IOException,servlet excexception httpservletresponsehttpservletresponse=(http servlet响应)响应; //iferrorsexistthencreateasanitizedcookieheaderandcontinuesecuritywrapperresponsesecuritywrapperresponse=newsecuritywraperaperaper=空(for ) intI=0; i cookies.length; I ) { Cookie cookie=cookies[i]; if(cookie!=null (//es API.security configuration ).getHttpSessionIdName ) returnsjsessionidbydefaultconfigurationif ) es API.getht } } filter chain.do filter (请求,响应); 一些实现JEE5的web APP应用服务器和实现Java servlet 2.5 (它是JEE5的一部分)的servlet容器也可以创建HttpOnly会话cookie。

Tomcat 6在Context.xml中设置的context属性useHttpOnly如下:

? XML版本=' 1.0 '编码=' utf-8 '? 上下文路径='/mywebapplicationpath ' usehttponly=' true ' JBoss5.0. 1和JBOSS EAP 5.0.1是servermyjbosserverinstance context cookies=' true ' cross context=' true ' sessioncookiesecure=' true ' http only=' true ' sioncoookiesecure=' TP ooookiesecure 在. NET 2.0中,还可以使用HttpCookie对象为所有自定义APP应用程序cookie设置HTTPOnly。

htpcookieshttponlycookies=' true '…或以编程方式

C#代码:

http cookie my cookie=new http cookie (' my cookie ); myCookie.HttpOnly=true; response.appendcookie(mycookie ); VB.NET代码:

dimmycookieashttpcookie=new http cookie (my cookie ) ) my cookie.http only=true response.append cookie ) )但

Response.Cookies[cookie].Path ='; HttpOnly '; 使用Python设置HttpOnly :

要在Cherrypy会话中使用HTTP-Only cookie,只需在配置式中添加以下行:

也可以使用tools.sessions.http only=true sll来避免中间人攻击。 使用Tools.sessions.secure=truePHP设置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 [

boolsetcookie(string$name (,string $value [ (,int $expire=0 [ (,string $path[,string $domain [ ),BOL $ )

如果代码不可更改,可以使用web APP应用程序防火墙将HttpOnly添加到会话cookie中。

使用mod_security-secrule和Header ESAPI WAF 9使用添加-仅http-only-flag

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。