質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

4006閲覧

ベーシック認証のユーザー名に日本語は可能か?

rjunakc

総合スコア368

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

3グッド

3クリップ

投稿2020/08/21 03:06

前提・実現したいこと

ベーシック認証のユーザー名・パスワードの組合せに、日本語を利用することは可能か知りたいです?

試したこと

試しにユーザー名をカタカナ、パスワードを数字で.htpasswdを作ってみましたが、
Google Chrome、Microsoft Edge、Firefox、Safariはアクセスできました。
Internet Exploror11のみ何度入力しても承認されませんでした。
(いずれも最新版、Safari以外はWindows10 64bit)

ここで質問ですが、ユーザーIDをカタカナなど日本語文字で運用することは、仕様的にOKなのでしょうか。
ご存じの方がいましたら、よろしくお願いします。

rajico, yohhoy, shinji709👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/21 03:39

この質問の背景は ・実装したい ・無理であることを仕様から説明したい のいずれの方向性なのでしょうか? Web サーバではなくて、 アプリケーション側で認証実装すれば、対応できる気がするんですよねぇ。。。
rjunakc

2020/08/21 03:46

実装したいです。 でも、仕様的に無理がある場合は、その説明はお伺いしたいところです。
guest

回答4

0

アプリケーション側で認証を実装することで、何とかなりそうではあります。
(未検証/検証するつもりはないです)

ずいぶん古い記事ですが、以下を見てください。
UTF-8 characters mangled in HTTP Basic Auth username

回答に以下の通り、ブラウザの実装状況が記述されています。

  • Opera uses UTF-8;
  • IE uses the system's default codepage (which you have no way of knowing, other than it's never UTF-8), and silently mangles characters that don't fit into to it using the Windows ‘guess a random character that looks a bit like the one you wanted or maybe just not’ secret recipe;
  • Mozilla uses only the lower byte of character codepoints, which has the effect of encoding to ISO-8859-1 and mangling the non-8859-1 characters irretrievably... except when doing XMLHttpRequests, in which case it uses UTF-8;
  • Safari and Chrome encode to ISO-8859-1, and fail to send the authorization header at all when a non-8859-1 character is used.

要するに、ブラウザごとに実装が異なるので、それらをサーバ側で多段チェックをしてやれば、実装できそうです。
ただ、通常の Web サーバにはそのような実装がなされていないので、アプリケーション側で認証を実施してやる必要があります。

参考:
PHPを利用したBasic認証の仕組み

投稿2020/08/21 04:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/21 04:18

該当のアカウントが数個程度なら、apache 側で「ブラウザから送信されるであろう認証情報」を htpasswd に記述するって解決方法もありかも。
rjunakc

2020/08/21 06:38

ご回答ありがとうございます。 やっぱり現実的ではないですか。コストも時間もあまりかけたくないので、今回は見送ることにします。 わざわざご回答いただきありがとうございました。
guest

0

キャラクターコードの影響をもろに受けるので確実性にかける
認証は管理者側の負担にしかならないのでやめるべきです。
どうしてもということならベーシック認証ではないものを選択ください

投稿2020/08/21 03:50

yambejp

総合スコア116441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/08/21 03:51

入力ウィンドウにさえ日本語表示できませんしね
Orlofsky

2020/08/21 05:09

何のソフトだったか忘れたけど、昔パスワードにマルチバイト文字を登録できるようにしたら、外字を登録した人がいて他のPCからログインできないってサポートに電話やメールで泣きつかれてサポート部門の過労者が続出。それでマルチバイト文字を使えなくしてたってのを聞いたことがあります。
rjunakc

2020/08/21 06:37

ご回答ありがとうございます。 やっぱり現実的ではないですか。コストも時間もあまりかけたくないので、今回は見送ることにします。 わざわざご回答いただきありがとうございました。
guest

0

自己解決

いくつか案を示して頂きましたが、要望通りの実装とはいかない、コストと労力を考えた上で諦めることにします。
わざわざお時間を割いて回答していただきました皆さま、ありがとうございました。

投稿2020/08/21 06:40

rjunakc

総合スコア368

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/08/25 08:08

この判断に至った上でもっとも役立った回答をベストアンサーにすべきだと思います。
guest

0

世界に公開される仕様で日本語を特別扱いは難しいし、非常に危険だと思う。
UTF16を使ってくれ。

投稿2020/08/25 01:09

kokorohamoe

総合スコア190

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/25 08:03

回答の意図がよくわからないのですが、どういった回答なのでしょうか?
Zuishin

2020/08/25 08:05

CPU の話が始まる予感。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問