首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS - RequestFiltering for #

IIS - RequestFiltering for #
EN

Security用户
提问于 2015-06-16 09:53:21
回答 2查看 187关注 0票数 1

我今天偶然发现了这个链接,它确实在最初打算用于的站点上运行XSS:

代码语言:javascript
复制
https://<site>/<page>.html/?#prettyPhoto=Not_FeelIng_Safe&%3Cimg%20src=%27x%27%20onerror=alert%287%29%3EB

我在我的站点上尝试了这一点,该站点在imgalertonerror上将请求过滤配置为404,但是这个URL是允许的。

我添加了#来拒绝规则,我还在QueryStrings选项卡中作为拒绝序列添加了它,但它仍然是允许的。大概是因为#是特别的,它之后的任何东西都不算作URL或Querystring。

如果我们的站点(S)不需要它,那么阻止#是明智的吗?如果是的话,我如何在IIS7上拒绝#呢?

EN

回答 2

Security用户

发布于 2015-06-16 11:43:32

#后面的字符串是“片段标识符”,通常用于导航到HTML中的锚元素(但这里用于模拟单页应用程序中的URL导航)。

片段标识符完全由浏览器客户端使用,甚至不包括在对web服务器的请求中,因此您不能在IIS或任何其他服务器中的服务器端过滤它。

(您不应该依赖ASP.NET请求筛选来获得安全性。这只是它失败的地方之一。)

您可以尝试在客户端“过滤”它,方法是在任何其他脚本之前包含一个<script>运行,这样会破坏页面,如果它在location.hash中检测到任何“坏”的东西,就拒绝加载任何脚本,但这仍然会受到所有相同的黑名单输入嗅探失败模式的影响,这使得请求验证浪费了每个人的时间。

票数 2
EN

Security用户

发布于 2015-06-17 05:31:27

这是什么浏览器?这应该是自动阻止色度XSS过滤器。我认为第一步是建立一个适当的CSP https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_内容_安全性_政策

在开始减少与妥协相关的风险后,比如使用http只使用cookies、CSRF令牌,然后开始执行bobince建议的客户端过滤器。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/91740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档