我们需要确保CF7站点上的所有cookie都设置为HttpOnly.
我们使用jsessionid来控制我们的会话,而JRun并没有将它创建为HttpOnly.
虽然可以修改现有的cookie来添加此设置,但我们需要从一开始就将其设置为HttpOnly.
有什么建议?
相关问题:为HTTPS cookie设置安全标志.
我已经设置了我的ColdFusion应用程序,使用下面的代码设置HTTPOnly cookie(来自http://www.petefreitag.com/item/764.cfm):
<cfcomponent output="false">
<cfscript>
THIS.Name = "MyCFApp";
THIS.SessionManagement = true;
THIS.SetClientCookies = false;
THIS.SessionTimeout = CreateTimeSpan(0, 3, 0, 0);
THIS.ApplicationTimeout = CreateTimeSpan(0, 8, 0, 0);
</cfscript>
<cffunction name="onSessionStart" returntype="Void" output="false">
<cfheader
name="Set-Cookie"
value="CFID=#SESSION.CFID#;path=/;HTTPOnly;#APPLICATION.SECURE_COOKIES#;" />
<cfheader
name="Set-Cookie"
value="CFTOKEN=#SESSION.CFTOKEN#;path=/;HTTPOnly;#APPLICATION.SECURE_COOKIES#;" />
<cfreturn />
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
(仅供参考,APPLICATION.SECURE_COOKIES
允许我为安全cookie设置特定于应用程序的值 - 生产是SSL,因此我可以做到安全,但我的本地开发环境不是SSL,所以这是空的.)
当我在Google Chrome中清除Cookie /会话并重新加载页面时,我可以Set-Cookie
在调试器中看到响应标头:
当我在调试器中检查cookie时,它们被标记为HTTPOnly:
当我在IE9中执行相同操作时,我可以Set-Cookie
在调试器中看到标题:
但是,对于相同的请求,cookie在调试器中可见:
当我在IE9中重新加载时,cookie是可见的,但不会标记为HTTPOnly:
IE9在这里发生了什么?如何解决此问题以正确设置HTTPOnly Cookies?
cookies coldfusion internet-explorer httponly session-cookies
我正在为客户端在Laravel 5.1中构建一个应用程序.完成应用程序后,我收到了一份pentest报告,告诉我添加一个HttpOnly标志.我在app/config/session.php中添加了'secure'=> true和'http_only'=> true.除XSRF-TOKEN会话外,为所有会话设置httpOnly标志.我怎么能设置这个标志呢?
在此操作后,我向服务器发送请求以登录并获取带有仅带有 HTTP 标记的令牌值的 cookie 我无法在我的反应应用程序中访问 cookie 值,但我在邮递员应用程序中对其进行了测试,如果可以的话,我可以在此应用程序中看到 cookie在邮递员应用程序中看到它,这样我就可以在我的应用程序中看到它!它们之间有什么不同?有没有办法在反应应用程序中获取仅 HTTP cookie? 来自邮递员服务器请求响应的结果
我正在准备一些诊断工具.它在iframe的网站上运行 - 只能通过javascript运行.
现在我需要的是摆脱我在iframe中的网站中的会话cookie.我只需要在执行一些操作后退出.
不幸的是,我不能只是从javascript中删除会话cookie,因为它标有httpOnly标志.我也没有找到任何方法在隐身模式下打开iframe.
现在,实现这一目标的规则如下:
有关解决方法的任何想法?
从我在线阅读的所有内容来看,像这样的 web.config 应该在 ASP.NET 2.0 中启用 HttpOnly cookie。然而,这是行不通的。
<configuration>
<system.web>
<httpCookies httpOnlyCookies="true" />
</system.web>
...
</configuration>
Run Code Online (Sandbox Code Playgroud)
还有什么我想念的吗?我看过很多关于这个主题的帖子,但 cookie 不会显示为 HttpOnly(或者安全,如果我将 requireSSL="true" 添加到标签中)。
我正在使用 IIS 7.0。
编辑:
我试图在根级别的 web.config 中设置它以覆盖所有 cookie。我正在查看 ASP 页面上 Firebug 中的 cookie,并且应该有绿色文本的“HttpOnly”部分说“HttpOnly”对于其中一些是空的。
例子:
在开发一个phonegap应用程序时,我可以看到来自XHR登录请求的响应中的SetCookie标头到我正在使用的API.正如预期的那样,当我检查后续请求时,我看到正在发送cookie.我还可以看到它是一个httpOnly
cookie,所以我无法使用脚本存储它.
但是,在Chrome开发工具"资源"中,如果我愿意,我可以毫不费力地删除cookie.
然而,当我在外部iOS或Android设备上运行应用程序时,使用Safari或Chrome Web Inspectors为每个相应的设备,我无法在"资源"面板中看到cookie.我也没有在请求或响应中看到cookie标头,但我的请求却不错.
这是一项安全措施,还是我的app/API中存在与cookie有关的错误?
cookies httponly google-chrome-devtools cordova safari-web-inspector
我有一个 Django 应用程序,正在配置一些安全设置。其中一项设置是SESSION_COOKIE_HTTPONLY
标志。我将此标志设置为 True。
在会话创建(登录)时,HTTPOnly
如果我检查 cookie,我可以看到会话标志设置。注销时,服务器发回一个带有空值的会话 cookie 更新,以表明 cookie 已被销毁。此空 cookie 不会与httpOnly
设置的标志一起发回。
我的问题:这是一个安全问题吗?有没有办法强制 Django 在注销时设置这个标志?或者这只是预期的行为,而不是安全问题,因为返回的会话 cookie 是空白的?
在我的 Django 的 settings.py 中,我有
SESSION_COOKIE_HTTPONLY = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
X_FRAME_OPTIONS = 'DENY'
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
SECURE_HSTS_SECONDS = 15768000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SESSION_COOKIE_AGE = 2 * 24 * 3600
Run Code Online (Sandbox Code Playgroud)
但是https://detectify.com发现没有为 csrftoken cookie 设置此标志。我检查了 Chrome 关于 cookie 的内容,如果我理解正确,空的 HTTP 列确认这两个 cookie 不是仅用于 HTTP 的:
此外,如果我document.cookie
在 chrome 的控制台中进行操作,则会显示 csrftoken 值。
我想知道为什么会这样。我在 uwsgi 和 nginx 上运行 Django。nginx配置如下,有问题的站点是https://rodichi.net:
server {
listen 443 ssl http2 default_server; …
Run Code Online (Sandbox Code Playgroud) 有没有办法在 Blazor 服务器端设置 httponly cookie?使用 js-interop 设置非 httponly 不是问题,但在 httponly 的情况下,这种方式显然是不可能的。
预先感谢霍尔格
httponly ×10
cookies ×8
coldfusion ×2
django ×2
asp.net ×1
blazor ×1
client-side ×1
cordova ×1
csrf ×1
javascript ×1
jrun ×1
jsessionid ×1
laravel-5.1 ×1
nginx ×1
php ×1
python ×1
reactjs ×1
security ×1
session ×1