我一直在尝试为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=