【问题标题】:How exactly do you configure httpOnly Cookies in ASP Classic?在 ASP Classic 中究竟如何配置 httpOnly Cookie?
【发布时间】:2008-09-10 20:49:52
【问题描述】:

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

【问题讨论】:

    标签: security asp-classic httponly


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:
      Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly"
      

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

      【讨论】:

        【解决方案3】:

        您需要将“;HttpOnly”附加到响应 cookie 集合中。

        【讨论】:

          【解决方案4】:
          Response.AddHeader "Set-Cookie", ""&CStr(Request.ServerVariables("HTTP_COOKIE"))&";path=/;HttpOnly"&""
          

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

              • 是的,我知道。但是再增加一层保护永远不会有坏处。
              • 2012 年我不相信这是真的
              猜你喜欢
              • 2010-09-07
              • 2016-06-04
              • 2010-09-07
              • 2011-02-28
              • 1970-01-01
              • 2020-03-19
              • 2011-04-01
              • 2012-11-14
              • 1970-01-01
              相关资源
              最近更新 更多