- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经读到(并且正在接受)这样一个事实,即没有任何解决方案可以 100% 有效地抵御 XSS 攻击。似乎我们所能希望的最好的是阻止“大多数”XSS 攻击途径,并且可能有良好的恢复和/或法律计划。最近,我一直在努力寻找一个好的引用框架来说明什么应该是可接受的风险,什么不应该是可接受的风险。
在阅读了 Mike Brind 的这篇文章之后(顺便说一句,这是一篇非常好的文章):
http://www.mikesdotnetting.com/Article/159/WebMatrix-Protecting-Your-Web-Pages-Site
我可以看到,如果您需要未经验证的用户输入,使用 html 清理器也可以非常有效地降低 XSS 攻击的途径。
然而,就我而言,情况恰恰相反。我有一个(非常有限的)带有网络界面的 CMS。用户输入(经过 URL 编码后)被保存到一个 JSON 文件中,然后在可查看的页面上提取(解码)该文件。我在这里阻止 XSS 攻击的主要方法是,您必须成为少数注册成员(member)之一才能完全更改内容。通过记录注册用户、IP 地址和时间戳,我觉得这种威胁在很大程度上得到了缓解,但是,我想使用一个 try/catch 语句,除了以前的提到的方法。
我的问题是:我能在多大程度上信任这个验证者?我知道它会检测标签(从逻辑上讲,这个部分 CMS 未设置为接受任何标签,所以如果检测到任何标签,我可以抛出错误)。但是这个天生的验证器还能检测到什么(如果有的话)?
我知道 XSS 可以在不触及尖括号(或完全标记)的情况下实现,因为可以保存、编辑 html 源,然后在简单地从客户端计算机运行之后向一些随机标签添加了一个额外的“onload='BS XSS ATTACK'”。
只是好奇如果有人确实想将它用作他们的反 XSS 计划的一部分(显然是用 try/catch,所以用户看不到 YSOD),那么这个验证器的可信度有多少。这个验证器是否相当不错但并不完美,或者这只是一个“最佳猜测”,即任何有足够知识了解 XSS 的人,都将有足够的知识,认为这个验证并不重要?
--------------------编辑-------------------- --------
在此站点...:http://msdn.microsoft.com/en-us/library/hh882339(v=vs.100).aspx
...我为网页找到了这个示例。
var userComment = Request.Form["userInput"]; // Validated, throws error if input includes markup
Request.Unvalidated("userInput"); // Validation bypassed
Request.Unvalidated().Form["userInput"]; // Validation bypassed
Request.QueryString["userPreference"]; // Validated
Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed;
根据评论:“//已验证,如果输入包含标记则抛出错误” 我认为如果字符串包含任何被视为标记的内容,验证器将抛出错误。现在(对我而言)真正的问题是:什么是标记?通过测试我发现单个尖括号不会抛出错误,但是如果有任何东西(我到目前为止已经测试过)出现在该尖括号之后,例如
"<l"
好像出错了。不过,我确信它所做的检查比这更多,而且我很想看看在请求验证器的眼中,什么符合和不符合标记。
最佳答案
我相信 ASP.NET 请求验证是相当值得信赖的,但您不应该单独依赖它。对于某些项目,我将其启用以提供额外的安全层。一般来说,最好使用经过广泛测试/使用的解决方案,而不是自己制作一个。如果“YSOD”(或自定义错误页面)成为我的客户的问题,我通常只是禁用该页面的 .NET 请求验证功能。
一旦这样做,我会仔细确保我的输入经过清理,但更重要的是我的输出经过编码。因此,在我向用户推送用户输入的(或网络服务等——来自第三方的任何内容)内容的任何地方,它都会被包装在 Server.HtmlEncode() 中。这种方法多年来一直运作良好。
您提供的 Microsoft 文档链接非常好。要回答关于什么被认为是标记(或者什么应该被认为是标记)的问题,请戴上黑客帽子并查看 OWASP XSS Evasion Cheat Sheet。
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#HTML_entities
关于c# - 我对使用网页/WebMatrix 与 XSS 的 ASP.NET 请求验证有多大的信任度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986918/
有谁知道是否可以使用 Microsoft 的 WebMatrix 在最初不是使用 WebMatrix 创建的网站上工作。 我想要工作的网站并不奇特。只需基本的 html、css、php 和 mySQL
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我想调整网络矩阵的主要配置文件。我以为我在 C:\Program Files (x86)\Microsoft WebMatrix\config\applicationHost.config 但更改文件
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我正在使用通过 Web 平台安装程序安装的 Umbraco。现在 WebMatrix 中出现了 3 个不同的站点,它们只是 Umbraco CMS1、Umbraco CMS2 和 Umbraco CM
我正在使用 WebMatrix2 在我的机器上本地运行一些测试站点。当然,每个站点都会由 WM2 指定其自己的端口号(例如 localhost:15632 或 localhost:12643) 我还没
从“我的网站” View 中,我一一选择了几个要删除的网站。对于每个我都可以选择“删除网站”或“删除网站和内容”。我选择“删除网站和内容”。 但是,当我后来选择重新创建其中一个已删除的站点时,Webm
我到底需要主机提供什么才能让我的 webmatrix 项目正常工作?我知道 Microsoft 的 Scott Hanselman 提供了一些不错的托管网站,但我只是想好玩。 最佳答案 为了使用 We
我想为我为客户构建的应用程序构建一个 Web 界面。该应用程序本身使用 Access 作为前端,使用 SQL Server 作为数据库。 这个想法是让他们在路上检查物品的库存,或者使用笔记本电脑甚至智
或者它也与asp.net或asp.net mvc兼容吗? 最佳答案 查看 Dave Ebbo 的这篇精彩帖子:Link WebMatrix 实际上是一个工具故事,它附带一个堆栈(IIS Express
我将一个 JavaScript 文件从 Visual Studio 复制到一个新的 WebMatrix 2 Beta 项目,结果发现 vsdoc 文件并未用于 JavaScript Intellise
我有一个我一直在开发的 MVC ASP.Net 应用程序。当我尝试加载页面时,它只有大约一半的时间工作正常,我被转移到 login.aspx?ReturnUrl=ENCODED_REQUESTED_P
新的 Webmatrix 是一个很酷的免费开发环境。它有任何扩展点来添加新功能吗? 最佳答案 在 Webmatrix 2.0 Beta 及更高版本中,存在用于添加“扩展”的可扩展性框架。该 API 目
我有一个非常快速的问题要问你,我想你可以很快回答。 我在我正在构建的网站上有一个搜索页面,它使用查询字符串参数来更改搜索结果。 我还希望任何查询字符串参数反射(reflect)嵌入在同一页面上的搜索表
我正在玩 WebMatrix,我只想探索幕后的一些 Razor 般的东西……但是我的 Reflector 技能(和我的大脑)让我失望了。有没有人知道我应该开始寻找哪个组件(和/或它的位置)? 最佳答案
几天前,我尝试从 WebMatrix 打开我的 Orchards MVC 站点,但它崩溃了。目前,我尝试打开的任何网站,或者即使我尝试创建一个空网站,都会导致 WebMatrix 停止工作。我收到 W
我从入门模板创建了一个 Web Matrix 网站,该模板创建了一个数据库,其中包含一些用于登录详细信息的表格。其中大部分是名称 webpages_Membership、webpages_Roles
我刚刚在其中一个搜索页面上完成分页设置,但遇到问题,因为当我在页面之间单击时,查询字符串(我用来构建搜索查询的)会丢失。有没有一种简单的方法来保存它们,或者我需要编写一些花哨的 JavaScript
我的数据库(StarterSite)中有一个表(About_User),该表应该可以工作,以便每个单独的行都针对每个单独的用户。但是,无论哪个用户登录,他们都可以访问同一行(换句话说,不会为每个新用户
我是这个网站的新手。我正在开发我的第一个包含数据库的网站。我决定按照网上找到的实验室教程在 Webmatrix 中创建一个网站,然后创建一个显示数据的网页。我完成了数据库的创建,但现在无法正确显示它们
我是一名优秀的程序员,十分优秀!