问题标签 [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 回答
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 投票
2 回答
211 浏览

javascript - HtmlService Caja - 设置文本框值

使用 HtmlService(使用 Caja 清理)时,我可以获取/设置文本框(其他控件)的值吗?

其中'z123'是唯一文本框的ID,上面的代码给出了错误消息:

当然 UiApp 允许这样做。所以我不确定发生了什么。

0 投票
2 回答
459 浏览

javascript - Google Apps Script Web App serverHandler 输出中缺少嵌入式 Javascript

我正在尝试将一些 JavaScript 嵌入到作为 Web 应用程序运行的 Google Apps 脚本的输出中,但我在输出中找不到我的脚本标签或 jQuery 加载的任何证据,所以我认为它正在被剥离我猜是卡哈出的。

我通过从文件创建 HTMLOutputObject 来添加 JavaScript,如下所示:

也许值得一提的是,javascript 是以这种方式添加到附加到 listBox 更改事件的 serverHandler 中的 - 而不是在初始 doGet() 函数中 - 我不确定这是否会有所不同。

order_form_javascript.html 文件的内容是:

H3 标签输出中,但没有出现脚本标签,没有弹出警告框并且 jQuery 未定义。

我在Caja 操场上尝试了这段代码,它似乎有效。所以我认为我一定是错误地插入了javascript,或者遗漏了一些明显的东西。

提前感谢您提供的任何建议。

0 投票
1 回答
10441 浏览

javascript - 在 Google Apps 脚本中弹出浏览器

背景:我在 Google 应用程序脚本中的 HTML 服务中准备了一个表单,我使用 Code.gs 中的 DoGet 函数调用该表单。

发布后,它会呈现一个简单的浏览器表单,上面有一些标签、输入框、提交、重置和查找按钮。用户将输入信息单击提交,数据将存储在电子表格(背景)中。- 工作正常到这里。

现在,当用户单击查找按钮时 - 需要填充弹出式窗口,在此弹出式窗口中,用户可以输入信息(从下拉列表中),所选条目将被填充回输入框中,可以修改并再次提交。

问题:

在浏览器上时如何在 GAS 中弹出一个关闭窗口。

我在 HTML 服务中的查找按钮如下:

最后调用javascript:

CreatePopup()javascript 代码:

查看日志时,它会显示“我是第一次被叫”和“我是最后一次被叫”。

我的研究:我发现 Spreadsheet.toast (类似这样的)适用于电子表格,但我如何在浏览器上获得小窗口..

0 投票
1 回答
1817 浏览

javascript - 如何在 node.js 下使用 Google 的 Caja HTML Sanitizer 将标签列入白名单?

我在 node.js 下使用 npm 包Caja-HTML-Sanitizer 。

我可以使用 sanitizer() 函数清理 html 输入,但是如何使用白名单只允许某些标签(例如 p br strong)?

谢谢!

0 投票
1 回答
2203 浏览

google-apps-script - HTML 服务 - GSheet 中的下拉选项列表

进入 Google Apps 脚本和 HTML 服务

这是HTML

我在我的一个项目(以及更多代码)中有此代码,它基本上从工作表中捕获信息并将其添加到选择中的选项(下拉列表)中,但是在新项目中尝试相同的代码时,这不起作用,任何想法我错过了什么。

目前显示的结果是一个下拉框<?!=sourcedata[i]?>

我该如何纠正这一点。请提供任何帮助。

编辑: - -

请查看@第 3 条评论以获取电子表格的链接以及一些解决方法...

0 投票
1 回答
1662 浏览

html - 点击刷新 HTML 服务网页

……

上面的代码完美运行,但是每次我单击按钮时,我都希望 HTML 模板化/部署的网页也能够加载/重新加载/刷新......

我尝试添加

请有人可以帮助我获取正确的代码,通过该代码的 onClick 按钮调用分数函数(目前正在工作)以及刷新页面。

注意:我希望它刷新,原因是 - 在提交时,数据被推送到 GSheet,它在刷新时再次在下拉列表中调用......

提前致谢....

0 投票
1 回答
2802 浏览

html - How to make a tab panel using HTML Service

How I can integrate a tabs panel to display in each tab a different HTML content and allow also the navigation of those panels, in Google Apps Script HTML Service?

I tried to implement this simple code but it doesn't work, due to caja sanitization, it seems.

0 投票
1 回答
723 浏览

javascript - 限制第三方脚本 - Google Caja?

我正在构建一个 CMS 系统,我想限制第三方 javascript 包括用户可以嵌入到他们的站点中。

我将使用跟踪作为示例场景,因为它最能描述我想要实现的目标。

  1. 我创建了授权脚本的白名单(即 Google Analytics、Optimizely)
  2. 用户输入一个新脚本,但它不在白名单上,即 Tableau,核心功能将被阻止/限制/减少。

定义“阻塞”:脚本无法与页面上的任何元素交互(即观察表单元素并从提交的表单中捕获数据)或数据被混淆且根本无用的用户访问。

因此,考虑到上述示例,我希望 Tableau 的功能会减少。热图报告之类的东西将不再起作用(因为我们阻止了与 DOM 的交互,所以客户端事件不应该起作用)。我还假设查看 Caja 的架构,访问似乎来自 Cajoled 服务,而不是来自用户浏览器?

看看 Google Caja 似乎它可能是一个选择,但重点始终围绕整个 HTML/CSS/JS(一个小工具/应用程序),我正在寻找的东西在这个意义上稍微减少了一些。也许有另一种解决方案

它是可以设置为通用的,还是需要针对每个白名单/黑名单项目进行特定的工作?

编辑 - 查看它,有各种类型的沙盒脚本可用,但它们看起来都相对不受支持或处于其开发的每个生产阶段。

JSandbox https://github.com/eligrey/jsandbox

JS.js https://github.com/jterrace/js.js

0 投票
1 回答
420 浏览

google-caja - google caja - 从命令行运行

我已按照此处描述的安装步骤进行操作。
现在他们说 - “要从命令行运行 Cajoler,请使用 bin/cajole_html 脚本。”,但那里没有文件cajole_html。(我已经从他们的 svn repo 中检查了最新的源代码,并且构建成功)这里
描述的基本相同,寻找.Setting Up Caja

  1. 我正在寻找一种从命令行运行它的方法,如下所示:
    bin/cajole_html -i <htmlInputFile> -o <outputTarget>

  2. 我真正需要的是知道javascript是否“危险”。我真的不需要哄 html/css,只需要 js。