如何保护经典ASP ASPSESSIONID cookie?
有没有办法将经典ASP ASPSESSIONID*cookies标记为安全的?ASP ISAPI处理程序似乎在我的页面渲染完成后添加了会话id cookie,因此将代码放在我的页面末尾以循环通过Response.cookie集合并将其标记为secure似乎不会影响ASPSESSIONID*cookie。还有其他方法吗?答案是没有,IIS管理器提供的标准UI上没有。但是,您可以通过元数据库值为SessionID启用安全cookie。[编辑:您可以忽略以下内容。我刚刚意识到您在谈论ASPSESSIONID。} 内置了对安全cookie的支持 看 示例(适用于ASP.Net,而非经典ASP):如何保护经典ASP ASPSESSIONID cookie?,session,cookies,asp-classic,Session,Cookies,Asp Classic,有没有办法将经典ASP ASPSESSIONID*cookies标记为安全的?ASP ISAPI处理程序似乎在我的页面渲染完成后添加了会话id cookie,因此将代码放在我的页面末尾以循环通过Response.cookie集合并将其标记为secure似乎不会影响ASPSESSIONID*cookie。还有其他方法吗?答案是没有,IIS管理器提供的标准UI上没有。但是,您可以通过元数据库值为SessionID启用安全cookie。[编辑:您可以忽略以下内容。我刚刚意识到您在谈论ASPSESSIO
Response.Cookies("setSecure") = "someValue"
Response.Cookies("setSecure").Secure = true
我运行这个命令:
C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/1/AspKeepSessionIDSecure 1
此处的详细信息:如发现的,规则可以处理此问题 如果
ASPSESSIONID
cookie中缺少HttpOnly
和Secure
,下面的规则可以处理添加这两个cookie的操作。(对于其他cookie,通常由站点ASP代码发出:最好直接在负责它们的代码中处理。)
IIS服务器中未安装,这将使站点崩溃
请注意,如果站点是通过http
而不是https
合法访问的,则不应应用Secure
规则,因此在本地浏览时不发出该规则的条件。如果通过http
访问的站点从客户端发出Secure
,则客户端不会发送co好的,回到服务器
(我避免测试入站协议,因为我工作的站点无论如何都不应该在http
上访问,除非最终直接从其宿主服务器或负载平衡器上访问。)
我以前尝试过使用,但没有效果(至少对于负载平衡器后面的站点,终止https并通过http访问站点服务器)。此设置是现代版本(IIS 7+)由于我的站点希望所有通信都是通过https进行的,我想知道cookie不会被不安全地传输。以下文档的第8-10页解释了为什么需要安全标志:假设所有通信都通过https,则不会。有一个pos如果用户从http中删除“s”并尝试与您的站点对话,可能会出现这种情况。但即使他们这样做了,如果您的站点只使用Https,有什么害处呢?我完全同意您的说法,这是牵强的,但我们的一个客户在查看我们的代码时提出了这个问题。这不是一个高优先级的问题,而是我想要的进行调查。即使服务器不使用http,浏览器也不知道这一点,并且会通过http发送cookie,因为cookie上没有设置安全位。顺便说一句,此链接:使我认为这是可能的,甚至是受支持的。这篇文章讲的是IIS4或5,但我正在运行5.1和6。您有支持您的应用程序的文档吗回答“不,这是不可能的”?不,事实上我刚刚找到了一些文档,说明了这是如何可能的;)。答案经过调整,有一种方法可以做到这一点。方便的脚本。注意:通过设置w3svc/[site identifier here]/AspKeepSessionIdSecure 1,为每个所需的网站运行一次,问题是关于经典ASP而不是ASP.net
<system.webServer>
<rewrite>
<outboundRules>
<rule name="Add HttpOnly" preCondition="No HttpOnly">
<match serverVariable="RESPONSE_Set_Cookie" pattern="\s*ASPSESSIONID.*" />
<action type="Rewrite" value="{R:0}; HttpOnly" />
</rule>
<rule name="Add Secure" preCondition="No Secure">
<match serverVariable="RESPONSE_Set_Cookie" pattern="\s*ASPSESSIONID.*" />
<action type="Rewrite" value="{R:0}; Secure" />
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
</rule>
<preConditions>
<preCondition name="No HttpOnly">
<add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
</preCondition>
<preCondition name="No Secure" logicalGrouping="MatchAll">
<add input="{RESPONSE_Set_Cookie}" pattern="; Secure" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>