问题标签 [html-sanitizing]

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 投票
1 回答
720 浏览

ruby-on-rails-3 - Rails 中的 simple_format 助手是否足以防止 xss?

我阅读并测试了simple_format允许某些 html 标签。

是否足够安全以再次保护 xss?(假设我不介意用户将 html 放在使他们的文本漂亮)这会导致 xss 吗?还是我应该坚持h方法?

0 投票
1 回答
2485 浏览

c# - HtmlAgilityPackSanitizerProvider 无法加载类型

我的问题是,我正在尝试使用 HTML 扩展编辑器。我安装了ajaxcontroltoolkit。到目前为止一切顺利,控制工具包工作正常,但我需要清理。所以我下载了htmlagilitypack并像这样使用它:(还在控件上添加了EnableSanitization =“true”)

在 webconfig 中添加:

和 :

但是当我使用 ajaxcontrol 加载我的页面时,它显示以下错误:

无法加载类型“AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider”

我引用了所有 dll(AjaxControlToolkit、HtmlAgilityPack、SanitizersProviders)。我第一次第二次阅读了这篇文章,但没有帮助我。我能做些什么?谢谢你。

0 投票
1 回答
2766 浏览

java - 如何修复 Java webapp 中的地方性 XSS 漏洞

我正在开发一个已有多年历史的 Java Web 应用程序。

<bean:write>JSP 中的大多数sfilter="false"甚至在不需要时都有,这可能是因为开发人员盲目地复制现有代码。<bean:write>是Struts标签输出一个JSP变量,filter="false"指定时不做HTML转义(所以和属性filter="false"类似)。这意味着应用程序容易受到 XSS 攻击,因为其中一些正在输出用户输入。<c:out>escapeXml="false"<bean:write filter="false">

一揽子删除filter="false"不是一个选项,因为在某些情况下,应用程序允许用户使用 TinyMCE 文本区域输入 HTML,因此在某些情况下我们确实需要输出原始 HTML 以保留用户输入的格式(尽管我们仍然应该清理用户输入的 HTML 以删除脚本)。

代码中有数千个filter="false"s,因此审核每个 s 以确定是否需要它需要太长时间。

我们正在考虑做的是制作我们自己的bean:write标签版本,比如说secure:write,并在我们的 JSP 中使用 secure:write 进行 bean:write 的全局查找/替换。secure:write指定时将从输出中删除脚本filter="false"。在此更改之后,用户仍然可以将格式化 HTML 输出到他们不应该真正能够输出的位置,但只要修复了 XSS 漏洞,我们暂时不担心这一点。

我们想使用一个库来实现secure:write标签中的脚本剥离,我们一直在查看https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Projecthttps://code.google.com/ p/owasp-java-html-sanitizer/。两者看起来都能够清理 HTML,尽管 AntiSamy 看起来像是用于在进入应用程序而不是退出时清理 HTML,并且由于数据的输出频率高于输入数据,因此我们是担心secure:write通过它运行我们所有的输出可能会很慢。

我有两个主要问题:

1) 我们提出的方法是否可以修复由以下原因引起的 XSS 漏洞filter="false"

2) 任何人都可以推荐一个在显示内容时用于 HTML 清理的库,即它的速度足够快,不会显着影响页面渲染性能吗?有没有人用过 AntiSamy 或 owasp-java-html-sanitizer 来做类似的事情?

0 投票
1 回答
736 浏览

ruby-on-rails - 验证前删除所有 html 标签

是否有一种干净的方法可以在验证之前删除所有属性的所有 html 标记我发现acts_as_sanitized 似乎很完美,但是对于 rails 2 :-s

谢谢

0 投票
1 回答
2327 浏览

java - 如何在 jsp 页面上使用 owasp-java-html-sanitizer 的策略

我的任务是防止我们的网站遭受跨站点脚本 (XSS)。这个概念对我来说是新的,我搜索了很多并得到了 owasp-java-html-sanitizer。我创建了自己的政策

通过使用.allowAttributes,我设计了它。但现在我不知道如何使用它......我发现了以下代码片段:

但是我如何将它应用于我的 JSP,因为我认为这是用于简单的 HTML。请帮忙。

0 投票
1 回答
383 浏览

python - Python - lxml 库“清洁”方法只擦除一半的空
  • 节点
  • 我正在使用 Python 中的 lxml 库从我不想要的潜在有害代码/部分中清除 html 页面。我注意到函数中有一个奇怪的行为:当给定一个空<li>节点时,它会删除结束</li>标记而不是开始标记。

    例如,

    将输出<ul><li><li>FooBar</li></ul>...

    据我所知,这只发生在处理<li>标签时。这是来自 lxml 库的错误吗?难道我做错了什么?

    任何见解将不胜感激。谢谢 !

    0 投票
    1 回答
    746 浏览

    html - 链接共享 - Google Caja HTML Sanitizer

    我正在尝试解决我的新 Web 应用程序上的经典“用户输入清理”问题,我选择使用 Google Caja 的 HTML Sanitizer 服务器端来完成此任务。

    虽然实施+测试进展顺利,但我仍有一些问题:

    • 1) 我只能找到 HTML4 定义,这是否意味着 HTML5 标签不安全?

    我对 HTML 5 特定的标签/属性 XSS 进行了一些测试,尽管它们都不起作用,但我不能 100% 确定某些未经测试的 XSS 不起作用。

    • 2) Google Caja 似乎不再活跃,这会构成安全问题吗?

    • 3)我希望我的用户能够共享链接,我如何能够以通过 Google Caja 过滤器的安全方式做到这一点?(如 StackOverflow)

    • 4) Caja 如何处理 Unicode ?

    先感谢您 !

    0 投票
    1 回答
    132 浏览

    php - 在 HTML Purifier 中禁用 URI 验证

    由于各种原因,我想禁用 HTML Purifier 中的 URI 验证,这可能吗?

    我意识到这可能对许多站点产生安全影响,但实际上并非如此。

    0 投票
    7 回答
    1817 浏览

    html - 清理不受信任的 HTML5

    我希望能够接受来自不受信任用户的 HTML 并对其进行清理,以便我可以安全地将其包含在我网站上的页面中。我的意思是,标记不应该被剥离或转义,而是应该被基本不变地传递,除非它包含危险的标签,如<script>or <iframe>,危险的属性,如onload,或危险的 CSS 属性,如背景 URL。(显然一些较旧的 IE 会在 CSS 中执行 javascript URL?)

    提供来自不同域的内容,包含在 iframe 中,这不是一个好的选择,因为没有办法提前知道 iframe 必须有多高,因此对于某些页面来说它总是看起来很丑。

    我查看了 HTML Purifier,但它看起来还不支持 HTML5。我还研究了 Google Caja,但我正在寻找一种不使用脚本的解决方案。

    有谁知道可以做到这一点的图书馆?PHP是首选,但乞丐不能选择。

    0 投票
    0 回答
    464 浏览

    javascript - html清理后如何嵌入受信任的iframe?

    如果我使用带有默认白名单的google-caja html sanitizer ,那么它将不允许我嵌入iframe.

    我知道这是一个安全风险,这就是为什么它不允许我这样做。但是他们有很多值得信赖的网站,它们通过iframe谷歌地图、推特按钮等提供功能。

    所以请建议我如何实现受信任的人以允许我的用户使用此功能。