Google 服务器上的应用脚本请求验证
Google App Script request validation on server
我正在为 Google 文档开发一个 add-on
,我想从 add-on
到我的 Web 服务器 POST request
。我已经这样做了,但是我应该如何在服务器端验证请求是否仅来自我的 add-on
? Google 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的概率。
史蒂芬
我正在为 Google 文档开发一个 add-on
,我想从 add-on
到我的 Web 服务器 POST request
。我已经这样做了,但是我应该如何在服务器端验证请求是否仅来自我的 add-on
? Google 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的概率。
史蒂芬