【发布时间】:2017-07-19 21:16:11
【问题描述】:
我有 (1) 一个带有绑定 Google Apps 脚本的 Google 表格电子表格,该脚本使用 UrlFetchApp.fetch() 向 (2) 我自己的 Google Apps 脚本网络应用程序(使用 doGet() 实现)发出请求。
当我发出请求时,我正在添加带有敏感信息的 HTTP 参数,例如:
https://script.google.com/macros/s/D83jfe2F543wj5s6U4Ws4I/exec?firstname=John&lastname=Smith&email=johnsmith@hotmail.com&SSN= 123456789
问:从安全角度来看,添加这样的敏感参数是否安全?它是 HTTPS,据我所知,URL 应该是端到端加密的。
注意:有人可能会争辩说,有人可能已经用病毒感染了用户的计算机以查看用户访问的 URL,但我只是运行了这个测试来找出 GAS 请求的来源,它们甚至不是来自用户的计算机,而不是来自山景城的谷歌服务器(所以似乎一切都以安全的方式“在幕后”发生?):
function findMyIP() {
var url = "https://www.iplocation.net/find-ip-address"; // IP finder website
var response = UrlFetchApp.fetch(url); // Execute a GET request from GAS to that website
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(response.getContentText()), 'Website Display');
}
编辑 - 供未来读者澄清的图片(感谢 Sandy Good 的回答):
【问题讨论】:
-
-
感谢您的意见,亚历克斯。我试图了解请求发出后的工作方式。为澄清起见(正如您所提到的,这可能适合您发布的网页),您是否知道在 Google Apps 脚本之间发出的 HTTPS 请求是否始终保留在 Google 基础架构中?或者客户端可以访问正在进行的网络调用(例如在 Chrome 开发者工具下)?提前感谢您的任何建议。
-
交互是“以安全的方式”完成的。
UrlFetchApp.fetch(url)请求只能从 Google 服务器发出。无法从用户(客户端)的浏览器运行它。 Apps 脚本使用 HTTPS(末尾为“S”),但我不确定它是否使用了最新最好的加密方法。您可以改为发出 POST 请求,并使用doPost(e)接收它并将数据放入有效负载中。 -
@SandyGood 非常感谢您的意见!它解决了我的顾虑。如果您将其作为答案提交,我可以将其标记为正确!
标签: security web google-apps-script