Google 服务器上的应用脚本请求验证

Google App Script request validation on server

我正在为 Google 文档开发一个 add-on,我想从 add-on 到我的 Web 服务器 POST request。我已经这样做了,但是我应该如何在服务器端验证请求是否仅来自我的 add-onGoogle App Script中是否有类似csrf的机制?如果没有,有什么解决方法吗?

没有这种机制,但最好的方法是在 post 请求中添加一个特定的密钥。像 API 键入 Google,例如:94e631ba-9916-4490-a084-cde08dcc0757

此处生成关键示例:https://codepen.io/corenominal/pen/rxOmMJ 改编代码如下:

function generateUUID()
{
    var d = new Date().getTime();

    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c)
    {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });

return uuid;
}

然后在您的服务器上检查这个值。如果 API 密钥有效,则执行请求,否则 return 403。

如果你愿意,你可以像 Google 一样实现 OAuth 流程来连接到你的服务器 API 但从我的角度来看,使用 API 更快钥匙。如果像上面那样组合2个键,发现它接近0的概率。

史蒂芬