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

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

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

4回答

6267閲覧

URLでベーシック認証にログインする場合にアクセス解析に読み取られない方法

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

1クリップ

投稿2016/08/01 10:55

ベーシック認証のIDが “user” 、パスワードが “password” の場合は、
http://user:password@example.com
にてログイン可能かと思いますが、アクセス解析を入れている場合は、このID/passは知られてしまうかと思いますが、知られないようにする方法はありませんでしょうか。

アクセス解析を別の担当に任せているのですが、純粋にアクセス解析は設置したままにしたいのですが、パスワードは知しられないでいたい、という特殊な状況下にあります。

上記ですとアクセスしているURLがわかるので、パスワードも知られていました。

この場合は短縮URLを使えば良いのでしょうか。

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

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

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

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

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

guest

回答4

0

ユーザIDとパスワードは、URLから取り外されて、AuthorizationヘッダにBase64エンコードされて付加されます。ヘッダ全部を保存するようなアクセス解析であれば、隠すことは出来ません。ヘッダ全部を保存しない仕様なら、保存対象にAuthorizationヘッダが入ってなければ、隠れます。

投稿2016/08/01 12:17

otn

総合スコア84423

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

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

退会済みユーザー

退会済みユーザー

2016/08/01 12:33

アクセスログにも’http://user:password@example.com’の形で残らないんですね。知りませんでした。
otn

2016/08/01 13:33

実際のリクエストはこんな感じです。 GET / HTTP/1.1 Host: example.com Authorization: Basic xxxxxxxxxx その他ヘッダ~~
退会済みユーザー

退会済みユーザー

2016/08/01 13:59

てっきり、ブラウザから`http://user:password@example.com`で飛んで行くんだと思ってました。 実際のアクセスも確認してみました。思い込みは怖いですね^^;
guest

0

ベストアンサー

アクセス解析と言っても大きく三つのタイプに分けられます。ログ型、タグ型、キャプチャ型の三つです。
参考: アクセス解析ツール3つのタイプ - ログ型/ビーコン(タグ)型/パケットキャプチャ型(第2回) | アクセス解析 Step by Step | Web担当者Forum
この三つのどれかによってどこまで解析できるかが変わりますので、そこをまずご注意ください。

###ログ型
まず始めに「ブラウザはHTTPサーバーにURLそのものをリクエストしているのでは無い」とだけ言っておきます。HTTP/HTTPSのURLはスキーマ://ユーザ名(オプション):パスワード(オプション)@ホスト:ポート(オプション)/パス(オプション)?クエリ(オプション)という構成です。ブラウザはURLのリンクを辿るとき、まず、このURLの構成要素を全てバラバラにします。オプション扱いで足りない部分のいくつかははデフォルト値(たとえば、HTTPならポートは80など)で補います。そして、それらの要素でHTTPのリクエストを作成し、HTTPサーバーへアクセスします。つまり、HTTPリクエストにはURLそのものがなく、バラバラにされた状態でそれぞれが入っています。ユーザ名とパスワードはホストやパスとは切り離された一ヘッダとして含まれます。

さて、このリクエストをログとして保存するとき、ほとんどのWebサーバーではユーザ名とパスワードが含まれた部分をログに書き込みません(デバッグ目的であえて書き込んでいる場合もあるでしょうが、少なくともデフォルトでそうなるアプリケーションは無いはずです)。つまり、そのようなアクセスがあってもログにはユーザ名とパスワードは記録されないと言うことです。ですので、アクセス解析でユーザー名とパスワードを知ることはできません。

###タグ型
ではタグ型はどうなのかというと、こちらはJavaScriptで現在のURLを取得しています。window.locationを使えば現在のURLが取得可能です。ただ、Google Chromeで確認する限り、ユーザ名とパスワード部分はアクセス成功時には現在のURLから削除されてしまっています。そのため、タグ型ではユーザ名とパスワードがあった元のURLを知る方法がないため、こちらもアクセス解析で知ることはできません。

※ Google Chrome以外のブラウザは未確認です。セキュリティ的な制限だと思われますので、他ブラウザも同様と思われます。詳しい情報を知っている方は教えてください。

###キャプチャ型
上の三つに比べ、こちらの方法は何でも取得できます。ただし、暗号化されてしまうと何にもわかりません(Webサーバの秘密鍵を持っていれば別ですが)。アクセス解析が目的であれば(秘密鍵ももっていて)すべて見えると考えて良いでしょう。この場合はどうしようもありません。どんな形式であろうが全ての通信を解析されてしまいます。信頼できない第三者にキャプチャ型をさせること自体が得策ではありません。

投稿2016/08/01 12:25

編集2016/08/01 12:26
raccy

総合スコア21733

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

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

0

BASIC認証のセキュリティなんてあってないようなもん

ネットワーク管理者にユーザー名やパスワードを秘匿したいなら
最低でもhttps運用するログインシステムを使ってください

投稿2016/08/01 11:14

yambejp

総合スコア114572

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

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

0

おそらく今回指しているアクセス解析とは、閲覧するページのアクセス解析のことをさしておられるのだと思います。
その場合は短縮URLを使っても意味がありません。
それよりも毎回ダイアログにIDとPWを入力したり、フォーム認証(ログインフォームを使った認証)を使ったほうがいいと思います。

投稿2016/08/01 11:00

stmkza

総合スコア478

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問