- 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/
服务器XSS的区别有什么明确的解释和客户端 XSS? 我阅读了 OWASP 网站上的解释,但对我来说不是很清楚。我知道反射、存储的 DOM 类型。 最佳答案 首先,为了让其他人发现问题,我们从 OWA
我在考虑我的应用程序的 XSS 漏洞。在服务器端,我不清理输入或输出,所以 alert(document.cookies) 完全如此存储在数据库中。要在客户端查看此值,我使用 Mustache。如果这
我无法理解存储的 xss 和反射的 xss 之间的区别是什么。你能举个例子告诉我吗? 最佳答案 存储型 XSS 意味着一些 坚持数据(通常存储在数据库中)未在页面中进行清理,这意味着每个人都可能受到该
Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web appli
有人可以用简单的英语解释 XSS 是如何工作的吗?也许举个例子。谷歌搜索没有多大帮助。 最佳答案 跨站点脚本基本上是动态网页的安全漏洞,攻击者可以创建恶意链接将不需要的可执行 JavaScript 注
站点的本地存储值可以被xss(跨站点脚本)覆盖吗?据我在 Chrome 和 Firefox 中验证,一个站点的 localstorage 值不能被其他站点访问。谁能告诉我 localstorage 值
据我了解,我需要在 header 服务器端禁用 X-XSS-Protection,以防止通过 GET 请求发生 XSS。 例如,用户浏览到 http://mysite.com/index.php?pa
在 OWASP XSS prevention cheat sheet它表示无法将不受信任的数据安全地放入 .setinterval JS 函数中。即使被转义/编码,XSS 仍然是可能的。 但如果我有这
我正在创建一个网页,用户可以在其中交互并在远程计算机上执行基本的文件系统操作(创建文件/目录、删除文件/目录、导航文件系统)。 该网页是基本的 HTML(UTF-8 编码)和 Javascript。我
可能是简单的解决方案,但我不明白为什么我尝试通过索引页面上的 XSS 输入在我的欢迎页面上运行此警报脚本不起作用。 我有一个带有表单的简单 index.htm 页面:
好的,所以我一直在阅读关于此处和其他地方的 Markdown ,并且用户输入和数据库之间的步骤通常被给出为 将 markdown 转换为 html 清理 html(带白名单) 插入数据库 但对我来说,
我最近发现 this blog entry在将 XSS 攻击直接写入数据库的工具上。它看起来是一种非常好的方法来扫描应用程序以查找我的应用程序中的弱点。 我尝试在 Mono 上运行它,因为我的开发平台
我正在经历一场无情的 XSS 攻击,但我似乎无法阻止。我的网站上共有三个输入表单 - 一个用于上传图像,一个用于向页面添加评论,第三个用于通过 php 发送电子邮件。我以一种或另一种方式保护它们所有人
我正在寻找有关 Qooxdoo 安全性的信息。 我想检查我的应用程序 vs OWASP top 10 需要审查的一点是 XSS OWASP A3 XSS 我如何确定 Qooxdoo 是安全的,可以抵御
我的网站遭受了多次 XSS 攻击。以下 HTML 片段是攻击者注入(inject)的 XSS 向量: 看起来脚本不应该执行,但是使用 IE9 的开发工具,我能够看到浏览器将 HTML 转换为以
CaSTLe Project 功能丰富,包括一些很棒的子项目,使用它进行开发是一种乐趣。 我的团队几乎准备好交付定制的 EAM我们正在完善我们的系统。我们尝试了一些基本的 XSS 攻击并猜测:它们都有
通过简单地转换以下(“大 5”): & -> & < > -> > " -> " ' -> ' 你会阻止 XSS 攻击吗? 我认为您也需要在字符级别上列入白名
我正在使用 ASP.NET 并且在 ASP.NET 页面上具有用于检查 XSS 验证的验证属性。但是我想知道这真的足够了吗? 我访问了一些关于 stackoverflow 的相关帖子,这对我有帮助,但
我们正在使用 ASP.NET MVC 5.0 来构建一个网站。如果我在保存时输入一些 javascript 文本框,我会得到一个“检测到可能不安全的输入”错误页面 - 太好了。 然而,我们的一些屏幕使
持久性 XSS 和非持久性 XSS 之间的主要区别是什么? 最佳答案 顾名思义,持久型 XSS 和非持久型 XSS 的区别如下。 持久性 XSS 存储在 cookie 或服务器数据库中的 XSS。 聊
我是一名优秀的程序员,十分优秀!