• Base64编码后的字符串中可能包含"+/="之类的字符,而"/","="等是URL的保留字符或不安全字符,因此如果直接在URL中传输Base64编码,保留字符和不安全字符会被替换为%XX的形式,对后端来说解码不方便。如果不替换,就会造成URL注入漏洞。
  • 因此,有一种URL安全的Base64编码,可以解决这个问题。 URL安全的Base64编码特点:
  • 不能被3整除时,不补=符号。
  • 生成Base64编码中,"+"和"/"被替换成其他非URL保留字符,使其可以直接放入URL中传输。
  • 比如"+"和"/"被替换成"-"和"_"。
  • 安全的Base64编码也有好多种,有些编码不会去掉等号,有些编码替换的符号不同。
function url_safe_base64_encode($string) {
        $data = base64_encode($string);
        $data = str_replace(array('+','/','='),array('-','_',''),$data);
        return $data;
 }