gpt4 book ai didi

google-apps-script - Apps 脚本私有(private)函数

转载 作者:行者123 更新时间:2023-12-04 19:04:14 28 4
gpt4 key购买 nike

在 Google Apps 脚本文档中,有一个关于服务器端私有(private)函数的页面。这应该说明没有私有(private)函数,服务器代码可以从用户浏览器中看到。
谁能解释一下如何在浏览器中看到这样的服务器端功能?
谢谢

见:https://developers.google.com/apps-script/guides/html/communication#private_functions

最佳答案

服务器代码在用户的浏览器上永远不可见,只有函数名称。私有(private)函数隐藏了这些名称,但更重要的是它们消除了前端直接调用它们的能力。

换句话说,私有(private)函数允许您定义后端入口点,防止恶意用户绕过您可能拥有的一些检查并直接调用您的“内部”函数。

为了展示查看名称和调用任何非私有(private)后端函数是多么容易,我提出了这个例子,我们检查了google.script.run。目的:

function myFunction() {}

function anotherFunction() {}

function privateFunction_() {}

function doGet() {
return HtmlService.createHtmlOutput(
'<p id="output"></p>'+
"<script>var s = ''; for( var prop in google.script.run ) s+=prop+'<br>';"+
"document.getElementById('output').innerHTML = s;</script>"
);
}

这是发布的示例:
https://script.google.com/macros/s/AKfycbzk0d03iB1O3vVYVD_U7eONM357iOPlAn7RFxAeZKx34q1Ones/exec

及其源代码(同上):
https://script.google.com/d/1WMY5jWblGl8U84WvVU_mZjHDg-6rGOoOPnKMF6m2bS_V-2g6IChBVDrg/edit

- 解决评论中的问题
doGet函数不能设为私有(private),因为它的名称是固定的/预定义的。但这并不是一个真正的问题,因为这个函数无论如何都应该是一个入口点,并且因为您希望它可以从用户的浏览器中调用,并且可以相应地进行参数检查等。

关于google-apps-script - Apps 脚本私有(private)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29014087/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com