Apps 脚本库安全性
Apps Script Library Security
我想知道应用程序脚本库的安全性。如果用户导入库,他们有什么方法可以检索库中的代码?
我问是因为我正在编写一个将许多 sheet 连接到一个像数据库一样的 sheet 的库。许多 sheet 的用户应该无法找到数据库 sheet。
我已经测试了控制台记录功能,它们只是 return [Function] 而不是实际的功能定义。但是我仍然不知道这是否是一个安全的实现。很想听听你的想法。
要让其他用户使用您的库,您必须通过共享脚本授予他们访问权限。
授权用户可以通过打印函数或者去脚本查看函数代码link
使用打印:
使用脚本 link:
https://script.google.com/d/(Script ID Here)/edit
在您上面的 post 中,您想隐藏所有会引导用户访问数据库 sheet 的数据。
我建议在您的库脚本中创建一个临时函数,它将设置一个包含 Sheet ID 的 属性。这可以通过使用 Properties Service 来完成。使用此服务将允许您将字符串存储为一个脚本范围内的键值对。
示例:
function setProperty(){
PropertiesService.getScriptProperties().setProperty("Sheet_ID", "123456");
}
用法:
function myFunction() {
var databaseID = PropertiesService.getScriptProperties().getProperty("Sheet_ID");
SpreadsheetApp.getActiveSpreadsheet().getSheetId(databaseID)
}
注意: 在部署库脚本之前,运行 setProperty()
函数并在脚本编辑器中将其删除。这将阻止用户查看 setProperty()
函数的源代码。此外,请确保您将授权访问您的库的用户的角色是 Viewer,以防止他们编辑您的脚本并打印 属性 值。
参考:
我想知道应用程序脚本库的安全性。如果用户导入库,他们有什么方法可以检索库中的代码?
我问是因为我正在编写一个将许多 sheet 连接到一个像数据库一样的 sheet 的库。许多 sheet 的用户应该无法找到数据库 sheet。
我已经测试了控制台记录功能,它们只是 return [Function] 而不是实际的功能定义。但是我仍然不知道这是否是一个安全的实现。很想听听你的想法。
要让其他用户使用您的库,您必须通过共享脚本授予他们访问权限。
授权用户可以通过打印函数或者去脚本查看函数代码link
使用打印:
使用脚本 link:
https://script.google.com/d/(Script ID Here)/edit
在您上面的 post 中,您想隐藏所有会引导用户访问数据库 sheet 的数据。
我建议在您的库脚本中创建一个临时函数,它将设置一个包含 Sheet ID 的 属性。这可以通过使用 Properties Service 来完成。使用此服务将允许您将字符串存储为一个脚本范围内的键值对。
示例:
function setProperty(){
PropertiesService.getScriptProperties().setProperty("Sheet_ID", "123456");
}
用法:
function myFunction() {
var databaseID = PropertiesService.getScriptProperties().getProperty("Sheet_ID");
SpreadsheetApp.getActiveSpreadsheet().getSheetId(databaseID)
}
注意: 在部署库脚本之前,运行 setProperty()
函数并在脚本编辑器中将其删除。这将阻止用户查看 setProperty()
函数的源代码。此外,请确保您将授权访问您的库的用户的角色是 Viewer,以防止他们编辑您的脚本并打印 属性 值。