如何停止在HTML表单提交中编码百分比



我试图使我的网站用户能够从Amazon S3下载文件。我的Web服务器上的AWS Private密钥在数字上签署了网址,而不是通过Ajax发送给客户端并嵌入到HTML表单的操作属性中。

提交表格时出现的问题。表单的动作属性包含一个具有数字签名的URL。此签名通常包含+符号的编码百分比。它完全使签名无效。我如何防止表格对我的URL进行编码?

i(尊重)建议您需要更仔细地确定问题的确切性质,在此过程中,在此过程中,它分解了,并确切地确定您实际上需要的是什么使固定。" "的urlencoding是浏览器要做的正确的事情,因为服务器在查询字符串中正确解释为"(space)"。

您的问题促使我回顾了我编写的我为S3生成签名URL的代码,我的回忆是正确的 - 我正在将' '' '%2b'=','='到%3D,然后'/'到签名中的%2F ...因此并非无效。这是假设我们在谈论同一件事,因此您在问题中提到的"数字签名"是此处讨论的签名:

http://docs.aws.amazon.com/amazons3/latest/dev/restauthentication.html#restauthentication quertication querticerystringauthauth

请注意,该示例中的签名中有一个urlencoded' ':签名= vjbypxybdzanmga %2b yt272yeaiv4%3D

我会推测您存在的问题可能不是' '→'%2b'(这不仅应该有效,而且必需)...而且也许是一个双重编码,使得您在某个时候对其进行了双重编码,以便' '→'%2B'→'%252b'...符号的百分比被编码为文字,这将打破签名。

最新更新