浅入分析常见语言中设置 HttpOnly 的方法

一般的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 属性了。

cookie.setHttpOnly(true);

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

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

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

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

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

对于 .NET 2.0 应用可以在 web.config 的 system.web/httpCookies 元素使用如下配置来启用 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";

PHP 从 5.2.0 版本开始就支持 HttpOnly

session.cookie_httponly = True

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。 要实现拨号,用手机?当然不行! 更简单,三步: 1.打开终端 2.连接: telnet localhost 5554(5554是你打开模拟器后上面显示的数字) 3.命令:gsm call 15555...
  • Nginx安装后默认直接显示自身的版本号,出于安全或隐私的考虑,可能需要隐藏Nginx的版本信息。隐藏Nginx的版本信息非常简单,只需要适当修改几个文件即可实现,且不会对正在运行中的程序造成影响。 1、修改nginx.conf配置,在HTTP段里增加“server_tokens off;”字段; ...
  • 一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了。 一、原因分析 1. 当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较高的比例,如果是某个大程序那还可以原谅,在 关闭该程序后只要CPU正常了那就...
  • 许多人喜欢在重装系统后使用备份的激活文件来还原,当然这是一种很好的方式,但是有时候不适当地操作将导致致命的问题,这便是其中一个。 替换系统激活备份文件后,计算机属性提示产品ID不可用,无法启动 Software Protection 服务以及附带的office也无法启动或闪退。产生这个问题的原因是,...
  • 在Window10中引入了一种叫备份我的配置功能,在同步功能页面的最底下,这个功能是做啥用的呢? 简单地说就是将你的当前环境下的配置打个包存储在微软提供的某块空间里,等你下次重装系统或在新电脑上装系统时,会提示你是否使用打包过的配置直接还原到你的新系统上。这里就出现了两方面的问题了,其一就是十分地方...
微信扫一扫即可带走我!