我的政策如下:
["starts-with", "$x-amz-meta-tag", ""]
根据docs:
要配置POST策略以允许表单字段中的任何内容,请使用带空值的starts-with("")。此示例允许success_action_redirect的任何值:
["starts-with", "$success_action_redirect", ""]
问题是你可以发送一个空字符串,这将通过。
有没有办法配置策略,使其必须是x长度或至少不是空字符串?
答案 0 :(得分:0)
没有,但是......
您拥有的选项是在您的应用程序中强制执行验证,将表单中的值设置为hidden
字段,然后在您的策略中包含["eq", "$x-amz-meta-tag", "the same string you embedded in the form"]
条件。由于签名的策略实际上包含所需的值,因此用户无法修改该值并在没有发生策略违规的情况下提交表单,从而拒绝上载。