问题标签 [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.
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 ?
先感谢您 !
javascript - HtmlService Caja - 设置文本框值
使用 HtmlService(使用 Caja 清理)时,我可以获取/设置文本框(其他控件)的值吗?
其中'z123'是唯一文本框的ID,上面的代码给出了错误消息:
当然 UiApp 允许这样做。所以我不确定发生了什么。
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,或者遗漏了一些明显的东西。
提前感谢您提供的任何建议。
javascript - 在 Google Apps 脚本中弹出浏览器
背景:我在 Google 应用程序脚本中的 HTML 服务中准备了一个表单,我使用 Code.gs 中的 DoGet 函数调用该表单。
发布后,它会呈现一个简单的浏览器表单,上面有一些标签、输入框、提交、重置和查找按钮。用户将输入信息单击提交,数据将存储在电子表格(背景)中。- 工作正常到这里。
现在,当用户单击查找按钮时 - 需要填充弹出式窗口,在此弹出式窗口中,用户可以输入信息(从下拉列表中),所选条目将被填充回输入框中,可以修改并再次提交。
问题:
在浏览器上时如何在 GAS 中弹出一个关闭窗口。
我在 HTML 服务中的查找按钮如下:
最后调用javascript:
CreatePopup()javascript 代码:
查看日志时,它会显示“我是第一次被叫”和“我是最后一次被叫”。
我的研究:我发现 Spreadsheet.toast (类似这样的)适用于电子表格,但我如何在浏览器上获得小窗口..
javascript - 如何在 node.js 下使用 Google 的 Caja HTML Sanitizer 将标签列入白名单?
我在 node.js 下使用 npm 包Caja-HTML-Sanitizer 。
我可以使用 sanitizer() 函数清理 html 输入,但是如何使用白名单只允许某些标签(例如 p br strong)?
谢谢!
google-apps-script - HTML 服务 - GSheet 中的下拉选项列表
进入 Google Apps 脚本和 HTML 服务
这是HTML
我在我的一个项目(以及更多代码)中有此代码,它基本上从工作表中捕获信息并将其添加到选择中的选项(下拉列表)中,但是在新项目中尝试相同的代码时,这不起作用,任何想法我错过了什么。
目前显示的结果是一个下拉框<?!=sourcedata[i]?>
我该如何纠正这一点。请提供任何帮助。
编辑: - -
请查看@第 3 条评论以获取电子表格的链接以及一些解决方法...
html - 点击刷新 HTML 服务网页
……
上面的代码完美运行,但是每次我单击按钮时,我都希望 HTML 模板化/部署的网页也能够加载/重新加载/刷新......
我尝试添加
请有人可以帮助我获取正确的代码,通过该代码的 onClick 按钮调用分数函数(目前正在工作)以及刷新页面。
注意:我希望它刷新,原因是 - 在提交时,数据被推送到 GSheet,它在刷新时再次在下拉列表中调用......
提前致谢....
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.
javascript - 限制第三方脚本 - Google Caja?
我正在构建一个 CMS 系统,我想限制第三方 javascript 包括用户可以嵌入到他们的站点中。
我将使用跟踪作为示例场景,因为它最能描述我想要实现的目标。
- 我创建了授权脚本的白名单(即 Google Analytics、Optimizely)
- 用户输入一个新脚本,但它不在白名单上,即 Tableau,核心功能将被阻止/限制/减少。
定义“阻塞”:脚本无法与页面上的任何元素交互(即观察表单元素并从提交的表单中捕获数据)或数据被混淆且根本无用的用户访问。
因此,考虑到上述示例,我希望 Tableau 的功能会减少。热图报告之类的东西将不再起作用(因为我们阻止了与 DOM 的交互,所以客户端事件不应该起作用)。我还假设查看 Caja 的架构,访问似乎来自 Cajoled 服务,而不是来自用户浏览器?
看看 Google Caja 似乎它可能是一个选择,但重点始终围绕整个 HTML/CSS/JS(一个小工具/应用程序),我正在寻找的东西在这个意义上稍微减少了一些。也许有另一种解决方案
它是可以设置为通用的,还是需要针对每个白名单/黑名单项目进行特定的工作?
编辑 - 查看它,有各种类型的沙盒脚本可用,但它们看起来都相对不受支持或处于其开发的每个生产阶段。
JSandbox https://github.com/eligrey/jsandbox