Security 使用HttpOnly Cookie的XSS保护可以工作吗?
我对HttpOnly cookie做了一些研究,并研究了可能存在的问题,即使用XHR请求结合跟踪方法从服务器返回cookie值 对于安全的Web应用程序,我目前有以下设置:Security 使用HttpOnly Cookie的XSS保护可以工作吗?,security,cookies,xmlhttprequest,httponly,Security,Cookies,Xmlhttprequest,Httponly,我对HttpOnly cookie做了一些研究,并研究了可能存在的问题,即使用XHR请求结合跟踪方法从服务器返回cookie值 对于安全的Web应用程序,我目前有以下设置: 会话cookie在登录时发送,并设置了安全和httpOnly属性 已对整个域禁用跟踪http方法(返回“405方法不允许”) 为了避免跨站点请求伪造,我在表单的隐藏字段中添加了一个随机键。必须在每个POST请求中返回此密钥,请求才能被接受 除此之外,默认情况下,所有HTML都使用白名单进行转义,以选择允许的标记和属性,但
- 会话cookie在登录时发送,并设置了安全和httpOnly属性
- 已对整个域禁用跟踪http方法(返回“405方法不允许”)
<span style="width: expression(alert('Example'));"> </span>
然后是最后一个问题:有人能指出这个设置中可能存在的缺陷或建议吗?或者你使用的方法是相同的还是完全不同的
已知问题:
- 并非所有浏览器都只支持http
- 过滤css JS表达式是不够的,@import(外部样式表)也可以工作
- 如何处理不完整的html,例如缺少结束标记
- 如何处理用户输入中的单引号、双引号和反斜杠
- 如何处理在不同上下文中输出的用户输入,例如url链接、属性值等。?
- 您是否检查输入是否与输入字符集编码匹配
- 您是否在响应头和元标记中显式设置了内容类型
- 对于通过HTTP服务的中度敏感用户页(如果有),您是否设置了适当的缓存控制标头李>
- 如何确保用户输入是沙盒式的?具体来说,如果您允许CSS,如何确保样式仅应用于受限区域,而不能更改其他区域李>
- 您是否有第三方javascript,包括网站上的广告
- 会话cookie是否受到保护以防篡改(如果应该)李>
- 您是否清理了所有可由用户修改的输入(包括HTTP头)
- CSRF令牌真的是随机的吗?如果是,如何生成随机令牌?如果没有,您如何构建它
- 您是否使用准备好的语句和绑定参数李>
- 用户可以上传文件吗
- 您是否提供用户上传的内容,如图像等?如果是,您如何验证文件内容(GIFAR缺陷)以及文件是否来自同一域李>
- 您是否提供API访问?如果是,它是否托管在同一个域上?您有什么跨域限制李>
这样的讨厌的字符转换成它们相应的html实体。在PHP中,我建议:
$var=htmlspeicalchars($var,ENT_QUOTES);
这将修复单引号和双引号,从而可以停止大多数XS。即使生成的sting位于html标记中。例如,如果您替换引号,攻击者将无法利用此漏洞。这是因为攻击者必须突破引号才能执行“onload=”
进入此html:
print("<img src='http://HOST/img.php?=".$var."'>");
打印(“”);
但是,您使用
标记列出的特定情况仍然可能存在问题,因为攻击者不需要引号!如果您在
标记中添加了xss漏洞,那么您的系统也会有xss漏洞。只要对用户输入的位置保持安全,就不会有针对所有漏洞的“一网打尽”或“银弹”
利用HTTP“跟踪”方法的“XST”攻击实际上不是一种现实的攻击。原因是攻击者不可能强制web浏览器发出“跟踪”http请求。在“GET”的情况下,攻击者可以使用javascript或
标记强制使用“GET”和“POST”方法,但HTTP头的其余部分是禁止使用的。请记住,在几乎所有Apache系统中,跟踪都是默认启用的,如果它真的很危险,则会一起删除。许多保安人员
print("<img src='http://HOST/img.php?=".$var."'>");