您如何在ASP Classic中配置httpOnly Cookies?

时间:2008-09-10 20:49:52

标签: security asp-classic httponly

我希望在我的旧版ASP经典网站中实现httpOnly。 谁知道怎么做?

6 个答案:

答案 0 :(得分:14)

如果您在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

答案 1 :(得分:11)

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

其他选项如expirespathsecure也可以这种方式添加。我不知道有什么神奇的方法来改变你的整个cookies集合,但我可能错了。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果您使用的是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>

答案 5 :(得分:-3)

HttpOnly在提高Web应用程序安全性方面做得很少。首先,它只适用于IE(Firefox“支持”它,但在某些情况下仍然向Javascript披露cookie)。另一方面,它只能防止针对您的应用程序的“偷渡”攻击;它不会阻止重置密码,更改电子邮件地址或下订单的跨站点脚本攻击。

你应该用吗?当然。这不会伤到你。但是在你开始搞乱HttpOnly之前,你应该确定你要做的10件事情。