如何在 ASP Classic 中配置 httpOnly Cookies?

问题描述 投票:0回答:7

我希望在我的遗留 ASP 经典站点中实现 httpOnly。 有人知道怎么做吗?

security asp-classic httponly
7个回答
18
投票

如果您在 IIS 7/7.5 上运行您的经典 ASP 网页,那么您可以使用 IIS URL 重写模块编写一条规则,使您的 cookie 成为 HTTPOnly。

将以下内容粘贴到您的 web.config 部分:

<rewrite>
    <outboundRules>
        <rule name="Add HttpOnly" preCondition="No HttpOnly">
            <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
            <action type="Rewrite" value="{R:0}; HttpOnly" />
            <conditions>
            </conditions>
        </rule>
        <preConditions>
            <preCondition name="No HttpOnly">
                <add input="{RESPONSE_Set_Cookie}" pattern="." />
                <add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
            </preCondition>
        </preConditions>
    </outboundRules>
</rewrite>

详情看这里:http://forums.iis.net/t/1168473.aspx/1/10

对于背景,出于 PCI 合规性原因,需要 HTTPOnly cookie。 PCI 标准人员(用于信用卡安全)至少让你的 sessionID cookie 上有 HTTPOnly 以帮助防止 XSS 攻击。

此外,目前(2-11-2013),所有主要浏览器都支持对 cookie 的 HTTPOnly 限制。这包括当前版本的 IE、Firefox、Chrome 和 Safari。

有关其工作原理和各种浏览器版本支持的更多信息,请参见此处: https://www.owasp.org/index.php/HTTPOnly


13
投票
Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly"

其他选项如

expires
,
path
secure
也可以通过这种方式添加。我不知道有什么神奇的方法可以改变你的整个饼干收藏,但我可能是错的。


1
投票

您需要将“;HttpOnly”附加到 Response cookies 集合。


0
投票
Response.AddHeader "Set-Cookie", ""&CStr(Request.ServerVariables("HTTP_COOKIE"))&";path=/;HttpOnly"&""

0
投票

Wowzers,第一个堆栈溢出帖子


-1
投票

如果您使用的是 IIS7 或 IIS7.5 并安装了 URL 重写加载项,那么您可以执行此操作。您可以创建一个重写规则,将“HttpOnly”添加到任何输出的“Set-Cookie”标头中。将以下内容粘贴到 web.config 的 部分。然后我用 Fiddler 来证明输出。

问候,杰里米

    <rewrite>
        <outboundRules>
            <rule name="Add HttpOnly" preCondition="No HttpOnly">
                <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
                <action type="Rewrite" value="{R:0}; HttpOnly" />
                <conditions>
                </conditions>
            </rule>
            <preConditions>
                <preCondition name="No HttpOnly">
                    <add input="{RESPONSE_Set_Cookie}" pattern="." />
                    <add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
                </preCondition>
            </preConditions>
        </outboundRules>
    </rewrite>

-4
投票

HttpOnly 对提高 Web 应用程序的安全性几乎没有作用。一方面,它仅适用于 IE(Firefox“支持”它,但在某些情况下仍会向 Javascript 公开 cookie)。另一方面,它只能防止对您的应用程序的“偷渡式”攻击;它无法阻止跨站点脚本攻击重置密码、更改电子邮件地址或下订单。

你应该使用它吗?当然。它不会伤害你。但是,在开始使用 HttpOnly 之前,您应该确定自己正在做的 10 件事。

© www.soinside.com 2019 - 2024. All rights reserved.