问题标签 [google-caja]

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 回答
88 浏览

google-caja - 允许 Google Caja HTML 电子邮件中的图片和链接

我正在尝试使用 caja 在网页中显示 html 电子邮件。我像这样加载它:

当它渲染时,所有的锚 href 和图像 src 标记都被剥离。所以你看不到图像或点击链接。我猜这是防止攻击的默认行为。

有没有办法让 html 按预期呈现,显示所有图像并具有可点击的链接?

今天刚开始使用 caja,api 文档的链接转到 404,所以找不到信息。

谢谢

0 投票
0 回答
374 浏览

javascript - 阻止html页面中的所有网络访问

我有一个非常简单的问题,答案可能不太简单:

我想构建一个 html 文件,包括 css 和 javascript。部分代码可能来自外部用户,并阻止它进行任何网络访问。这意味着:没有使用 javascript 的 AJAX 调用,没有程序重定向,甚至没有<img>带有.src=<a>href=

  • 内容安全策略似乎几乎可以完成这项工作,但一个普通的旧超链接<a href="https://evil.com/someUserData">click me</a>似乎仍然有效。
  • Google Caja 似乎在做这项工作,但我想完全了解它是如何工作的,而且我是 Java 新手。

所以,我的问题是:

  • 有没有什么方法可以通过 CSP 来实现这个沙盒功能?
  • Google Caja(使用 uriPolicy)是防止黑客在家中打电话的安全方法吗?
  • 还有其他提示和技巧吗?
0 投票
0 回答
76 浏览

sanitization - 使用 Google Caja 清理用户提供的 javascript

此处发布了类似的问题,但未提供有效的代码示例。

我想清理用户提交的 Javascript,以便我可以在浏览器中执行它。我在这里遵循示例代码:

```

```

我得到:

Uncaught script error: Uncaught SyntaxError: Failed to parse program: SyntaxError: Unexpected token (1:15) in source: "return function f(x) { return 1; }" at line: -1

...有任何想法吗?

0 投票
0 回答
63 浏览

javascript - Web Workers 作为清理用户输入 JS 的手段

我想让用户在我的网站上运行他们自己的脚本,这些脚本不会与 DOM 交互,主要用于计算。我打算使用服务人员作为清理用户输入 JS 的手段。脚本存储在 Db 中,然后加载,然后在服务工作者上下文中执行。

任何人都可以看到这种方法的任何安全问题(我不关心 while (1 === 1) 等 - 只有会伤害服务器/其他用户的东西)。脚本评估的结果不会直接提供给用户,而是用作其他 Js 脚本的输入。任何人都可以使用我描述的设置生成快速攻击示例/想法吗?