问题标签 [xss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3459 浏览

asp.net - 可以在机器之间复制 cookie 来冒充用户吗?

我们有一个应用程序,除其他外,它检查 cookie 的存在并读取和解密 cookie 的内容。虽然存储在 cookie 中的数据并不敏感,但它已通过 TripleDes 加密进行了加密。今天提出了一个问题,是否可以将保存在单台 PC 上的 cookie 复制到另一台 PC 上,以及 Web 应用程序是否会检测到此复制的 cookie 在另一台机器上的存在,并最终解密它在原始 PC 上的内容。

我的问题是:我们使用标准的 ASP.NET 实现来保存 cookie(即通过 HttpResponse),index.dat 文件是否会阻止将 cookie 从一台机器移植到另一台机器?如果 index.dat 文件也被传输和复制了,或者 index.dat 中是否有一些内部结构将 cookie 与特定机器联系起来怎么办?

0 投票
7 回答
4435 浏览

asp.net - 防止 XSS(跨站脚本)

假设我有一个简单的 ASP.NET MVC 博客应用程序,我希望允许读者向博客文章添加评论。如果我想防止任何类型的 XSS 恶作剧,我可以对所有评论进行 HTML 编码,以便它们在呈现时变得无害。但是,如果我想要一些基本功能,如超链接、粗体、斜体等,该怎么办?

我知道 StackOverflow 使用WMD Markdown Editor ,如果不是因为它同时支持HTML 和 Markdown 这使其容易受到 XSS 攻击,这对于我想要完成的工作来说似乎是一个不错的选择。

0 投票
2 回答
1322 浏览

security - Apache2 未定义字符集 UTF-7 XSS 漏洞

有谁知道如何在不升级 Web 服务器的情况下修复Apache 2.2.4中的这个漏洞?

这是我在SecurityReason的网上找到的。他们建议的修复方法是将其升级到版本 2.2.6。但是服务器是实时的,升级 t 是最后的手段。

Apache2 XSS 未定义字符集 UTF-7 XSS 漏洞

XSS(UTF7) 存在于mod_autoindex.c中 。Charset 未定义,我们可以通过将 Charset 设置为 UTF-7 来使用 apache 2.2.4 中可用的“P”选项提供 XSS 攻击。

"P=pattern 仅列出与给定模式匹配的文件"

请为此提出解决方案。

0 投票
4 回答
568 浏览

php - 照顾 XSS

我运行了一个渗透测试应用程序,它发现了大量的 XSS 错误,具体来说,我犯了通过查询字符串将未经验证的数据回显到浏览器的错误。

具体来说,运行它会将 javascript 放入我的页面。 http://www.mywebsite.com/search.php?q=%00 '" [ScRiPt]%20%0a%0d>alert(426177032569)%3B[/ScRiPt]。

谢天谢地,我不允许用户将数据保存到数据库并显示回其他用户,所以我认为人们只能用这个问题破解自己,但我仍然想修复它。

建议这样做:

但目前我需要尽快修复这个问题,然后根据具体情况进行修复。我在网站的每个页面上都有一个头文件,我知道它的格式不好,但是如果我这样做会发生什么:

我也需要为 COOKIE 和 GET 做这件事。我从不使用_REQUEST。

谢谢

0 投票
5 回答
10313 浏览

iframe - 将 iframe 设置为远程内容的内容高度

如何使 iframe 适合 100% 的内容(使用 JavaScript)的问题已经在论坛上得到解答……仅适用于显示来自同一域的内容的 iframe

我的问题:当 iframe src 属性用于包含框架的页面域之外的页面时,是否可以调整 iframe 的大小以适应内容?围绕跨站点脚本的浏览器安全功能阻止我访问 iframe 的文档对象。

我正在寻找任何创造性的解决方案。我的一个想法是以某种方式检测滚动条在 iframe 上可见,并逐渐增加高度直到它们不可见。不幸的是,我也找不到任何检测可见滚动条的方法。想法?

请注意,我正在寻找客户端解决方案。

回应:


戴夫

问题仍然存在——我不提前知道远程文档的高度,所以我无法从数据库或查询字符串值中设置它。


杜软

CSS 中 iframe 上的 100% 不会将其设置为iframe内容的 100%,而是相对于页面或包含元素(即 div 或其他内容)。

0 投票
9 回答
16711 浏览

ajax - 为什么跨域 Ajax 是一个安全问题?

为什么决定使用XMLHTTPRequest进行 XML 调用不应该跨域边界进行调用?您可以从其他域检索 JavaScript、图像、CSS、iframe 以及我能想到的任何其他内容。为什么不允许 Ajax HTTP 请求跨越域边界?考虑到我可以看到它被滥用的唯一方式,这似乎是一个奇怪的限制,那就是如果有人将 Javascript 注入页面。但是,在这种情况下,您可以简单地将 img、script 或 iframe 元素添加到文档中,以使其请求第三方 URL 并将其发送到服务器。

[编辑]

一些答案指出了以下原因,让我们指出他们没有造成不允许这样做的主要原因的原因。

XSRF(Cross Site Request Forgery,又称CSRF、XSRF)

你可以在不使用它的情况下进行 XSRF 攻击。作为一般规则,根本不使用 XMLHTTPRequest,只是因为很难以与所有主流浏览器兼容的方式生成 XMLHTTPRequest。如果您希望他们加载您的 URL,只需向 URL 添加一个 img 标记会容易得多。

发布到第三方网站

可以用

JPunyon:为什么要把漏洞留在新功能中

你不会再制造任何不安全感。您只是给想要以某种方式使用它的开发人员带来不便。任何想要将此功能用于邪恶(又名真棒)的人都可以使用其他方法来做到这一点。

结论

我将bobince的答案标记为正确,因为他指出了关键问题。因为 XMLHTTPRequest 允许您使用凭据(cookie)发布到目标站点,并读取从站点发回的数据,以及发送人员凭据,所以您可以编排一些 javascript 来提交一系列表单,包括确认表单, 以及生成的任何随机密钥,这些密钥被放置在适当的位置以防止 XSRF。这样,您可以像银行一样浏览目标站点,而银行的网络服务器将无法判断提交所有这些表单的不仅仅是普通用户。

0 投票
2 回答
382 浏览

javascript - 提升浏览器的javascript权限?

我正在开发一个内部工具,我记得有一些方法可以让你的脚本提示提升权限,如果被接受,允许跨站点请求等......因为这是一个内部工具,这可能会完成我需要的事情.

有谁知道如何做到这一点?

详细地说,我实际上是在尝试读取(在 javascript 中)注入我们页面的 3rd 方跟踪 iframe 的内容,以提供一些性能分析信息。这些 iframe 显然来自不同的域。如果我要代理他们,他们将不再提供准确的信息,因此该选项已失效。

0 投票
6 回答
742 浏览

xss - 验证用户输入字段时不允许使用 HTML 表格的原因是什么?

我正在写一点 wiki 并浏览我所有的语法高亮选项。在 wiki 语法 (mediawiki) 和 markdown + 白名单标签之间进行辩论。我想我更喜欢后者,但我认为我的用户需要表格。为什么 Stackoverflow 上不允许使用表格?

0 投票
6 回答
16970 浏览

asp.net - 如何强制浏览器不存储 HTML 表单字段数据?

在 HTML 表单中键入时,Firefox 或 Internet Explorer 等浏览器会存储这些值,有时会悄悄地存储这些值。因此,当输入另一个网络表单时,浏览器会巧妙地建议相同的信息。显示下拉列表的另一种方法是双击空文本框。

在电子商务网站上,客户键入信用卡号和其他敏感信息。如何避免或阻止浏览器存储敏感信息?

另一个担心是存储的表单数据被篡改(例如恶意软件)。然后客户可以选择这些受污染的数据并破坏该站点。

0 投票
2 回答
2742 浏览

javascript - DOM 文本节点是否保证不会被解释为 HTML?

有谁知道是否保证 DOMNode类型Text不会被浏览器解释为 HTML?

更多细节如下。

背景

我正在为朋友构建一个简单的网络评论系统,并且一直在考虑 XSS 攻击。我不认为过滤或转义 HTML 标签是一个非常优雅的解决方案——想出一个会滑过过滤器的卷积太容易了。根本问题是我想保证,对于某些内容(即随机未经身份验证的网络用户发布的内容),浏览器永远不会尝试解释或运行内容。

一个普通的(文本)开始

想到的第一个想法就是使用Content-Type: text/plain,但这必须适用于整个页面。您可以将纯文本IFRAME放在页面中间,但它很丑陋,并且如果用户单击框架会产生焦点问题。

内部文本/文本内容/JQuery

事实证明,有一些特定于浏览器的属性(innerText在 IE、textContentFF、Safari 等中)在设置时需要创建单个Text节点。

JQuery 试图通过实现一个text(val)跳过特定于浏览器的属性并直接转到的函数来避免特定于浏览器的属性的差异document.createTextNode(text),正如您可以猜到的那样,它创建了一个Text节点。

W3 Text NodeDOM

所以我认为这接近我想要的,它看起来不错——Text节点不能有子节点,而且看起来它们不能被解释为 HTML。但我不能从官方文档中 100% 确定。

其中的部分textContent特别令人鼓舞,因为它说“在设置时,也不执行解析,输入字符串被视为纯文本内容”。但这是所有Text节点的基础,还是只有您设置的节点textContent?这可能看起来像是一个愚蠢的狡辩,但它可能很重要,因为IE 不支持textContent(见上文)。

回到最初的问题

任何人都可以确认/拒绝这将起作用吗?也就是说,兼容 w3 DOM 的浏览器永远不会将节点解释Text为 HTML,无论内容是什么?我会非常感激能解决这个令人痛苦的小不确定性。

感谢您的时间!