我已经对 HttpOnly cookie 和存在的问题进行了一些研究,这些问题可能会结合使用 XHR 请求和 TRACE 方法来获取从服务器回显的 cookie 值。
对于安全的网络应用程序,我目前有以下设置:
- 会话 cookie 在登录时发送,并设置了安全和 httpOnly 属性
- 对整个域禁用 TRACE http 方法(返回“405 Method not allowed”)
为了避免跨站点请求伪造,我在表单的隐藏字段中添加了一个随机密钥。必须在每个 POST 请求中返回此密钥,才能接受该请求。
除此之外,默认情况下,所有 HTML 都使用白名单进行转义,以选择允许的标签和属性,但为了说明这还不够:我们之前允许使用 span 上的样式属性(例如为文本着色),这可用于通过以下方式在 Internet Explorer 中传递 javascript:
<span style="width: expression(alert('Example'));"> </span>
然后是最后一个问题:任何人都可以指出任何缺陷或建议以解决此设置中可能存在的缺陷吗?还是您使用相同或完全不同的方法?
已知问题:
- 并非所有浏览器都支持 httpOnly
- 过滤 css JS 表达式是不够的,@import(external-style-sheet) 也可以