我一直在尝试为Filestack图片上传设置基本的安全性。

根据其文档https://www.filestack.com/docs/security/create-policy
我需要生成哈希消息身份验证代码,我不确定下一步该怎么做,并且那里没有一个很好的示例。

使用客户端使用的api密钥,任何人都可以使用它将图像上传到我的FileStack存储或Amazon S3。如何设置Filestack安全性从我的域上传图像?

最佳答案

为了对Filestack使用安全性,您需要首先从Filestack开发人员门户获取密钥。不要公开此密钥,因为它不应像您的API密钥一样公开。

当您需要执行文件堆栈操作时,应在不向用户公开的功能中生成策略。

例如,如果我需要阅读安全的Filestack链接,

https://www.filestackapi.com/api/file/KW9EJhYtS6y48Whm2S6D

我需要在上面附加有效的策略和签名。

这是一些Python代码,它将为handle = KW9EJhYtS6y48Whm2S6D的文件生成策略和签名

# Python Example
import hmac
import hashlib
import time
import base64
# import json

json_policy = '{"handle":"KW9EJhYtS6y48Whm2S6D","expiry":1508141504}'
policy = base64.urlsafe_b64encode(json_policy)
print policy
print

secret = 'Z3IYZSH2UJA7VN3QYFVSVCF7PI'
print hmac.new(secret, policy, hashlib.sha256).hexdigest()

输出将是可用于访问文件的策略和签名:

https://www.filestackapi.com/api/file/KW9EJhYtS6y48Whm2S6D?signature=4098f262b9dba23e4766ce127353aaf4f37fde0fd726d164d944e031fd862c18&policy=eyJoYW5kbGUiOiJLVzlFSmhZdFM2eTQ4V2htMlM2RCIsImV4cGlyeSI6MTUwODE0MTUwNH0=

10-06 11:33