HTTP 基本身份验证失败,密码包含非 iso-8859-1 字符
HTTP Basic Authentication fail with password with non iso-8859-1 characters
基本身份验证有问题。服务器是 Apache httpd 服务器 2.2.12,我创建了一个受基本身份验证保护的位置:
<Location /basictest>
AuthType Basic
AuthName "BasicAuth di Test"
AuthBasicProvider file
AuthUserFile /etc/apache2/basictest.passwords
Require valid-user
</Location>
在密码文件/etc/apache2/basictest.passwords中我定义了两个:
user:password
pippo:pippo£
kanji:誰か確認上記これらのフ
如果我用 Chrome (47.x) 测试访问一切正常,但如果我用 [= 测试 link 24=]Firefox (43.x) 或在 iOS(Safari/601.1) 上使用 Safari Web 浏览器验证失败,因为user:password 的 base64 编码使用了错误的字符集 (Windows-1252)!在 Chrome 测试用例中使用的字符集是 UTF-8
Chrome ---------> cGlwcG86cGlwcG/Cow==
Safari/FireFox -> cGlwcG86cGlwcG+j
在我们等待 https://www.rfc-editor.org/rfc/rfc7617 实现的同时,我可以强制 FireFox 和 Safari 在 base64 加密上使用 UTF-8 作为 Chrome 的行为吗?
我不确定这是否是一个错误,因为浏览器使用不同的 encode/chars。
无论如何已经使用 UTF-8:
- Opera 10
- Chrome
使用不同的编码但 req 参数没有问题(所以 ASCII 仍然可以):
Firefox 1-4 (UTF-16 lower bytes)
Safari 4-5 (ISO-8859-1)
IE:Mac 5 (MacRoman)
IE 5-8 (CP_ACP)
IEMobile 6-8 (CP_ACP)
Netscape 4 (CP_ACP)
Opera 5 (CP_ACP)
https://bugzilla.mozilla.org/show_bug.cgi?id=41489#c90
关于他的疑惑。
基本身份验证不支持 non-ISO-8859-1 个字符。
你可以试试把.htaccess中的字符转成UTF8,没测试过,不知道行不行。 How to change the default encoding to UTF-8 for Apache?
我建议使用其他身份验证方法或创建登录页面。
如果其他同事有更好的解决方案,请告诉我。
基本身份验证有问题。服务器是 Apache httpd 服务器 2.2.12,我创建了一个受基本身份验证保护的位置:
<Location /basictest>
AuthType Basic
AuthName "BasicAuth di Test"
AuthBasicProvider file
AuthUserFile /etc/apache2/basictest.passwords
Require valid-user
</Location>
在密码文件/etc/apache2/basictest.passwords中我定义了两个:
user:password
pippo:pippo£
kanji:誰か確認上記これらのフ
如果我用 Chrome (47.x) 测试访问一切正常,但如果我用 [= 测试 link 24=]Firefox (43.x) 或在 iOS(Safari/601.1) 上使用 Safari Web 浏览器验证失败,因为user:password 的 base64 编码使用了错误的字符集 (Windows-1252)!在 Chrome 测试用例中使用的字符集是 UTF-8
Chrome ---------> cGlwcG86cGlwcG/Cow==
Safari/FireFox -> cGlwcG86cGlwcG+j
在我们等待 https://www.rfc-editor.org/rfc/rfc7617 实现的同时,我可以强制 FireFox 和 Safari 在 base64 加密上使用 UTF-8 作为 Chrome 的行为吗?
我不确定这是否是一个错误,因为浏览器使用不同的 encode/chars。
无论如何已经使用 UTF-8:
- Opera 10
- Chrome
使用不同的编码但 req 参数没有问题(所以 ASCII 仍然可以):
Firefox 1-4 (UTF-16 lower bytes)
Safari 4-5 (ISO-8859-1)
IE:Mac 5 (MacRoman)
IE 5-8 (CP_ACP)
IEMobile 6-8 (CP_ACP)
Netscape 4 (CP_ACP)
Opera 5 (CP_ACP)
https://bugzilla.mozilla.org/show_bug.cgi?id=41489#c90
关于他的疑惑。 基本身份验证不支持 non-ISO-8859-1 个字符。
你可以试试把.htaccess中的字符转成UTF8,没测试过,不知道行不行。 How to change the default encoding to UTF-8 for Apache?
我建议使用其他身份验证方法或创建登录页面。
如果其他同事有更好的解决方案,请告诉我。