1
178
不需要,您需要对其进行URL编码,因为base64字符串可以包含“+”、“=”和“/”字符,这些字符可以改变数据的含义-看起来像子文件夹。 有效的base64字符如下。
|
2
247
还有其他base64规格。(见表格) here 具体细节)。但本质上你需要65个字符来编码:26个小写字母+26个大写字母+10个数字=62。 您还需要两个“+”,“/”]和一个填充字符“=”。但它们都不支持URL,所以 只是用不同的字符 你已经准备好了。上面图表中的标准字符是“-”,“'”,但只要您对其他字符解码相同,并且不需要与其他字符共享,就可以使用其他字符。 我建议你只写你自己的助手。就像这些评论 php manual page for base64_encode :
|
3
68
@joeshmo或者不编写helper函数,只需对base64编码的字符串进行urlencode即可。这与助手函数的作用完全相同,但不需要额外的两个函数。
|
4
38
答案是否定的 ,您不能简单地在URL查询字符串中传递base64编码的参数,因为加号被转换为$\u get global数组中的空格。换句话说,如果你发送 测试?PHP?myvar=带+符号的字符串 到
结果是:
解决这个问题的简单方法是
当您处理该操作时,PHP会在填充$\u get global时自动解码查询字符串。 例如,如果我发送 测试?PHP?myvar=stringWith%2bsign 到
结果是:
你做
不
想
结果出乎意料:
这样做是安全的
|
5
13
是和不是。
base64的基本字符集在某些情况下可能会与URL中使用的传统约定冲突。但是,许多base64实现允许您更改字符集,以便更好地匹配URL,甚至可以附带一个(如python的
您可能面临的另一个问题是URL长度的限制,或者更确切地说,缺少这样的限制。由于标准没有指定任何最大长度,浏览器、服务器、库和其他使用HTTP协议的软件可能会定义自己的限制。你可以看看这篇文章: WWW FAQs: What is the maximum length of a URL? |
6
7
它是一个base64url编码,你可以试试,它只是上面Joeshmo代码的扩展。
|
7
4
我不认为这是安全的,因为例如“=”字符在raw base 64中使用,也用于区分参数和http g e t中的值。 |
8
1
理论上,是的,只要您不超过客户机或服务器的最大URL和/oor查询字符串长度。 在实践中,事情会变得更加棘手。例如,如果该值恰好包含“on”,并且您将其保留在尾部“==”,则它可以在ASP.NET上触发httpRequestValidationException。 |
9
-6
是的,它总是安全的。
当然,base64包含:
|
elw · $\u无法使用。htaccess重写删除php扩展 6 年前 |
T.Cacquevelle · 从API服务角度获取数据 6 年前 |
Dron4K · 弹簧座控制器字符串响应 6 年前 |
Gucci · AJAX上的API调用 6 年前 |