Hebikuzure's Tech Memo

2013年12月15日

検索プロバイダーの作成

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 6:09 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 15 日目です。


Internet Explorer の検索について 12/4 の記事で解説しましたが、その中で検索プロバイダーを追加する方法を説明しました。検索プロバイダーは「Internet Explorer ギャラリー」から追加できるのですが、それではこのギャラリーに登録されていない検索ページや、独自の検索ページを「検索プロバイダー」として追加するにはどうすれば良いのでしょうか。

以前は「Internet Explorer ギャラリー」に、検索プロバイダーを作成して追加できるウィジェットのページがリンクされていて、そこで独自の検索プロバイダーを簡単に追加できたのですが、なぜかこのウィジェットは無くなっています。

検索プロバイダー自体は簡単な XML ファイルで、そこに必要な情報を記述して Web 上に公開すれば、誰でもインストールして利用できるようになります。XML ファイルの仕様も OpenSearch Description ファイルとして公開されているので、びっくりするほど難しい話ではありません。ただし、作成した XML ファイルを Web に公開し、かつ正しい MIME Type (application/opensearchdescription+xml) で提供しなければならない点が、少しだけハードルが高いかもしれません。

検索プロバイダーの詳細な仕様については「Internet Explorer の検索プロバイダーの拡張性」(http://msdn.microsoft.com/ja-jp/library/cc848862.aspx) を参照してください。

そのような場合、enhanceie.com の「IE Search Provider Builder Tool」が利用できます。enhanceie.com は元 Internet Explorer 開発チームのプログラム マネージャー Eric Lawrence さんが運営しているサイトで、Internet Explorer 関連の色々な興味深い情報が公開されているサイトです。「IE Search Provider Builder Tool」の使い方は次の通りです。

IE Search Provider Builder Tool のスクリーンショット

  1. まず、検索プロバイダーとして利用したいページを (「IE Search Provider Builder Tool」とは別に) 開きます。
  2. 開いた検索ページで TEST という文字列を検索します (TEST はすべて大文字です)
  3. 検索結果が表示されたら、検索結果のページのアドレスバーに表示されている URL をコピーし、「IE Search Provider Builder Tool」の “3. Copy the URL of the Search results page into this box:” の後ろのテキスト ボックスに貼り付けます
  4. 検索プロバイダーに適当な名前を付けて、”Choose a name for this search provider” の後ろのテキスト ボックスに入力します
  5. [Install] ボタンをクリックすると、検索プロバイダーのインストールが開始できます

[View XML] ボタンをクリックすると作成された OpenSearch Description ファイルが表示され、[Download XML] をクリックすると OpenSearch Description ファイルがダウンロードできます。自分のサーバーなどで公開する場合はこれらの方法で XML ファイルを保存しましょう。

なお、検索ページがキーワードの入力で UTF-8 以外の文字コードを必要とする場合 (その場合は、上記の方法で作成した検索プロバイダーを使うと検索結果が文字化けします) は、下の方にある “If this search engine does not accept UTF-8 input, click here." をクリックしてください。

IE Search Provider Builder Tool のスクリーンショット

このように、UTF-8 以外のエンコードが指定できますので(上記のスクリーン ショットでは JIS コードを指定しています)、その状態でもう一度検索プロバイダーを作成してください。

広告

2013年12月14日

弱い証明書の制限

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 11:02 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 14 日目です。


インターネット上の安全な通信の方法として SSL が広く利用されていますが、SSL ではサーバー (と、オプションとしてクライアント) のデジタル証明書を利用しています。この証明書の作成には暗号化技術が使われていますが、暗号化の方法に問題があると第三者が暗号を解読し、通信の相手先になりすましたり、通信の内容を解読したりすることが可能になります。こうした問題のある暗号化方法の事を「弱い (暗号化) 鍵」と呼ぶこともあります。

Internet Explorer では Windows 自体の持っているデジタル証明書関連の機能を利用して、SSL に利用されるデジタル証明書が安全であるか、正しく発行されたものであるかを確認しており、デジタル証明書に重大な問題がある場合、それを利用しているページの表示をブロックします。ブロックした事を示すエラー ページでは、以下のようにページを閉じるオプションのみ表示され、閲覧を続行することはできません。

エラー画面
(http://blogs.msdn.com/b/ieinternals/archive/2013/12/12/ie-website-security-certificate-blocking-page-missing-continue-link.aspx から引用)

このようにページの表示がブロックされるのは、以下の場合です。

  1. 証明書が失効している (取消されている) 場合
  2. 証明書が弱い鍵で作成されているなど、安全でない場合
  3. ピン留めサイトを開いていて、証明書にエラーがある場合 (通常のモードでは閲覧が続行できる軽微なエラーの場合でもブロックされます)
  4. グループ ポリシーで「証明書エラーを無視できないようにする (Prevent Ignoring Certificate Errors)」が有効になっている場合

ポリシー「証明書エラーを無視できないようにする」は以下の場所にあります
– 管理用テンプレート
– Windows コンポーネント
– Internet Explorer
– インターネット コントロール パネル

これらの条件の中で、多くのサイトで問題になりやすいのは「2.」のケースでしょう。特に古い暗号化方式で作成されたデジタル証明書が、Windows の更新によって「弱い鍵」と判定されるようになり、証明書が無効になってしまうようなケースです。以下に、最近のデジタル証明書関連の更新情報 (および更新予定) で、Internet Explorer での Web 閲覧に影響を与えるものを示します。

マイクロソフト セキュリティ アドバイザリ (2661254)  : 証明書の鍵長の最小値に関する更新プログラム
(http://technet.microsoft.com/ja-jp/security/advisory/2854544 / http://support.microsoft.com/kb/2661254)

この更新では、長さ 1024 ビット未満の RSA キーを使用した証明書の使用が制限されます。長さ 1024 ビット未満の RSA キーを使用する証明書は信頼されなくなるため、そのような証明書を利用して SSL 通信を行おうとする Web サーバーにアクセスすると、Internet Explorer はページの表示をブロックします。
この更新プログラムは 2012年8月15日に公開され、2012年10月10日以降 Windows Update (自動更新) で提供されています。また Windows 8 または Windows Server 2012 以降のバージョンには、この更新の内容が最初から含まれています。

既に公開や Windows Update での提供が始まってかなりの時間が経っている更新なので、実際に影響が及ぶような公開サイトでは対処済みとなっている場合が多いでしょう。
イントラネットのサイトなどで、クライアントへの更新の配布が管理されている環境の場合、クライアントに KB2661254 の更新が適用されておらず問題が顕在化していない場合も考えられます。そうした環境でも今後 Windows 8 以降のクライアントを利用する場合には制限が適用されているため、特定のイントラネット サイトの閲覧やイントラネット Web アプリケーションの利用に問題が生じる可能性があります。
こうした可能性がある場合、上掲のリンクで示したセキュリティ アドバイザリやサポート技術情報を参照し、早めに該当する証明書が使用されていないか確認して対策しましょう。

マイクロソフト セキュリティ アドバイザリ (2862973) : マイクロソフト ルート証明書プログラムでの MD5 ハッシュ アルゴリズム廃止用の更新プログラム
(http://technet.microsoft.com/ja-jp/security/advisory/2862973 / http://support.microsoft.com/kb/2862973/ja)

この更新では、マイクロソフト ルート証明書プログラムで提供されているルートから発行された証明書について、 MD5 ハッシュ アルゴリズムを利用している証明書の使用が制限されます。マイクロソフト ルート証明書プログラム以外からユーザーがインストールしているルート証明書やそのルートから発行された証明書については、影響を与えません。

マイクロソフト ルート証明書プログラム
良く利用されるルート証明書をあらかじめ Windows のインストールに含めてすぐに利用できるようにしたり、Windows Update を経由して必要に応じて Windows の「信頼されたルート証明機関」にルート証明書を配布したりする仕組みです。詳しくは以下を参照してください。
Windows PKI – その2 – ルート証明書更新プログラムとは? (http://blogs.technet.com/b/jpntsblog/archive/2009/12/24/windows-pki-2.aspx)
Windows ルート証明書プログラムのメンバー (http://support.microsoft.com/kb/931125/ja)
Introduction to The Microsoft Root Certificate Program (http://social.technet.microsoft.com/wiki/contents/articles/3281.introduction-to-the-microsoft-root-certificate-program.aspx)

この更新が適用されると、マイクロソフト ルート証明書プログラムで提供されているルート証明書を証明書チェーンの頂点にしている証明書では、MD5 ハッシュ アルゴリズムを利用していると信頼されなくなります。そのような証明書を利用して SSL 通信を行おうとする Web サーバーにアクセスすると、Internet Explorer はページの表示をブロックします。
この更新プログラムは2013年8月28日にリリースされ、2014年2月12日から Windows Update および自動更新で提供が開始される予定です。Windows 8.1 または Windows Server 2012 R2 には、この更新の内容が最初から含まれています。

MD5 ハッシュ アルゴリズムは以前から広く利用されていましたが、現在のセキュリティが求める安全なレベルを確保できなくなってきているため、無効にされます。間もなく Windows Update での提供が開始されますので、公開 Web サーバーを持っている管理者の方は、早めに検証される事をお勧めします。また企業内で使用している証明書の場合でも、企業内のエンタープライズ CA が外部の CA からの認証を受けていない (いわゆる「オレオレ ルート証明書」) 場合は良いのですが、そうでない場合はこの更新の影響を受けると考えられます。早めに該当する証明書が使用されていないか確認して対策しましょう。

マイクロソフト セキュリティ アドバイザリ (2880823) : マイクロソフト ルート証明書プログラムでの SHA-1 ハッシュ アルゴリズムの廃止
(http://technet.microsoft.com/ja-jp/security/advisory/2880823)

この情報は予定です。マイクロソフト ルート証明書プログラムでは、2016 年 1 月 1 日以降、ルート証明機関は SSL とコード サイニングの目的で、SHA-1 ハッシュ アルゴリズムを使って X.509 証明書を発行できなくなります (X.509 とは、証明書の標準的なフォーマットです)。

この更新自体の影響は限定的ですが、セキュリティ アドバイザリに書かれているように Microsoft は「お客様ができるだけ早い機会に SHA-1 証明書を SHA-2 証明書に置き換えることを推奨します」あるいは「デジタル証明書の署名用アルゴリズムとして、SHA-1 の代わりに SHA-2 を使用するように、管理者と証明機関に推奨する」と言っています。従って、将来的には上記2つのアドバイザリーと同様に、 SHA-1 ハッシュ アルゴリズムを利用した証明書自体がブロックされるようになる可能性があると考えられます。

新規に証明書を発行する場合、SHA-1 ハッシュ アルゴリズムを利用しないこと、また将来にわたって利用する証明書については更新の際に SHA-1 証明書を SHA-2 証明書に置き換えることが必要です。

参考
“Continue” Link Missing from Certificate Error Page? (http://blogs.msdn.com/b/ieinternals/archive/2013/12/12/ie-website-security-certificate-blocking-page-missing-continue-link.aspx)

2013年12月13日

contentEditable 領域に画像を貼り付ける

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 11:50 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 13 日目です。


今頃になって気が付いたのですが (なので Advent Calender のような企画をやるとよい勉強の機会になるのですが)、Internet Explorer 11 では contentEditable 属性が ture に設定された領域に画像を貼り付ける機能が追加されています。この機能は IE Blog の “Enhanced Rich Editing Experiences in IE11” という記事で紹介されていたのですが、すっかり見落としていました。

まず contentEditable 属性ですが、これは元々Microsoft の独自実装として Internet Explorer 5.5 に搭載されました。この属性が true に設定されると、属性を持っている要素は編集可能になります。つまりページ上に表示されているテキストを編集することが可能になります。編集内容は新たなマークアップとして DOM に反映されるので、DOM を通じて編集された内容を検知したり、変数に格納して利用したりすることができます。ダイナミックなユーザー インタラクションが容易に実現できるので、この属性は HTML5 で標準化される事になっています。

さて、Internet Explorer 10 までのバージョンでは、contentEditable 属性が ture に設定された領域では、テキストの編集のみが可能でした。クリップボードからの貼り付けも、貼り付けられるデータがテキスト (プレーン テキスト、リッチ テキスト、HTML テキスト) である場合のみ可能でした。これに対して Internet Explorer 11 では画像の貼り付けが可能になっています。

貼り付けられた画像は Internet Explorer によって自動的に dataURI に変換され、以下のようなマークアップになります。

<img src="data:image/png;base64,(エンコードされた画像データ)>

実際に画像の貼り付けができるテストページ (http://www.hebikuzure.com/test20131213.html) を用意していますので、その動作を試してみてください。

image

image

image

画像を貼り付けたら (Internet Explorer であれば F12 開発者ツールを使い) DOM ツリーに上記のような img 要素が追加されている事が確認できます。

image

併せて、他のブラウザーでの動作を検証してみました。参考にしてください。

  • Chrome 31 / Chrome Canary 33
    画像の貼り付けはできませんでした
  • Firefox 26
    Internet Explorer 11 と同様の動作でした
  • Opera 18
    画像の貼り付けはできませんでした

2013年12月12日

この種類のファイルであれば常に警告する

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 9:17 PM


この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 12 日目です。


Internet Explorer で、他のアプリケーションで開くことができるファイルをダウンロードする場合、いったん保存してから開くこともできますが、保存の操作をせずに直接アプリケーションでファイルを開くようにすることも可能です。ただしセキュリティ的な危険を伴うため、この設定を安易に行うことは避けるべきです。

そういう観点から Internet Explorer ではこの設定を不用意に行うことが無いよう、仕様の変更が行われています。次に示すのは Internet Explorer 6 でのファイルのダウンロード ダイアログです。このダイアログにある「この種類のファイルであれば常に警告する」のチェックを外して [開く] ボタンをクリックすると、次回から同じ種類 (拡張子と MIME Type が同じ種類) のファイルのダウンロードの際、このダイアログが表示されずすぐに関連付けされたアプリケーションでファイルが開かれるようになります。

image

この仕様では、実際にその種類のファイルを開くとどのような結果になるのか確認する前にチェックを外す機会があり、またダウンロードの操作に必要なボタンと同列にチェックボックスがあるためその意味をあまりよく理解せず変更してしまう人も少なくなかったようです。こうした結果はあまり安全に寄与しているとは言えません。

さて、Internet Explorer 9 からファイルのダウンロード エクスペリエンスが変更され、上掲のようなダイアログボックスではなく、通知バーでダウンロードの確認が行われるようになりました。

image

前述のように、不用意に確認画面がスキップされる事が無いよう、Internet Explorer 9 以降のバージョンでは、ダウンロードを開始する時点では「この種類のファイルであれば常に警告する」設定ができないようになっています。では「この種類のファイルであれば常に警告する」はどこに行ったのでしょう?

実はこの機能はダウンロード マネージャーの中に移動しています。ダウンロード マネージャーでダウンロードした項目を右クリックすると表示されるコンテキスト メニューの中に「この種類のファイルを開く前に常に警告する」があります。

image

ここでこのチェックを外せば、次回から同じ拡張子と MIME Type でサーバーから送信されるファイルについては、ダウンロードの確認が表示されず、直接アプリケーションで開かれるようになります。

ただし手元で確認している限り、どの種類のダウンロードでもコンテキスト メニューの中に「この種類のファイルを開く前に常に警告する」が表示される訳ではないようです。どのような種類のダウンロードで表示されるのかは、別の機会にじっくりと調べてみたいと思います。

2013年12月11日

Mark of the Web

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 9:19 PM


この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 11 日目です。


Internet Explorer にあって他のブラウザーにない機能の一つに、「セキュリティ ゾーン」があります。Internet Explore では表示するコンテンツの提供場所を「セキュリティ ゾーン」で区分し、どのセキュリティ ゾーンから提供されているかによってセキュリティ設定などの動作を変更します。セキュリティ ゾーンの詳細については別途まとめる予定ですが、まずは以下の参考資料をご覧ください。

このような動作であるため、例えばローカルのファイル システムから表示したページ、企業内などの LAN 上のサーバーから表示したページ、インターネット上のサーバーから表示したページのそれぞれで、ページの内容 (HTML や CSS、スクリプト) が全く同じであっても、表示やスクリプトの動作が異なってしまう場合があります。これは安全でない場所から提供されるコンテンツではより多くの制限を行い、信頼できる場所から提供されるコンテンツではより少ない制限で動作させるという趣旨ではありますが、Web サイト、Web アプリケーションを開発してデバッグする場合や、Web ページの動作チェックを行う場合、また色々な動作検証を行う場合には各ゾーンでの動作を調べる必要があるため、少し手間がかかることとなります。

こうした場合、実際にコンテンツを提供する場所を (例えば LAN 内のサーバーからインターネット上に公開されたサーバーに) 変更しなくとも、ページ (HTML) 内に 1行のコメントを埋め込むだけで、ページのセキュリティ ゾーンを変更できる機能があります。この機能が Mark of the Web (MOTW) です。

MOTW を埋め込んだページを表示すると、Internet Explorer は MOTW で指定されているセキュリティ ゾーンからそのページが提供されたものとして扱い、そのセキュリティ ゾーンでの設定に従ってページを表示 / 動作させます。例えば、以下の MOTW が記述されている HTML ファイルをローカル コンピューターのファイル システムから開いた場合でも、このページはインターネット上のページとして扱われ、「インターネット ゾーン」のセキュリティ設定に従って動作します。

<!– saved from url=(0023)http://www.contoso.com/ –>

image

スクリーンショットで分かるように、アドレス (URL) はローカルのファイルシステム (デスクトップ) から開いている事が確認できますが、セキュリティ ゾーンは「インターネット」 ゾーンになっています。

このように MOTW を利用すれば、実際にはローカル コンピュータ上のファイル システムから開いたファイルをインターネット ゾーンやイントラネット ゾーン上のページとして動作させる事や、イントラネット (LAN) 内の Web サーバーのページをインターネット ゾーン上のページとして動作させる事が簡単にできます。これにより、Web サイト/ Web アプリケーションの複数のゾーンでの動作確認や検証が容易になります。

セキュリティ保護のため、MOTW を利用してもより制限の多いゾーンのページをより制限の少ないゾーンのページとして扱わせる事はできません
例えばインターネット ゾーン上のページに MOTW を記述しても、イントラネット ゾーンやローカル コンピューターのページとして扱わせる事はできません。

MOTW は以下のように記述します。

  • <!– saved from url=” で開始し、1行に記述します
  • –> ” で終了します
  • url=” に続けて、以下の形式でページの提供元にしたいアドレスを示します
    (URL の文字数)URL
    ex. (0023)http://www.contoso.com/
  • MOTW は HTML ファイルの先頭から 2048バイト以内に記述する必要があります
  • MOTW は HTML ドキュメント内 (!DOCTYPE 宣言より後、</html> タグより前) に記述する必要があります
    (通常は !DOCTYPE 宣言の直後に記述します)
  • MOTW の行は CR/LF で終わっていなければなりません

このように記述された MOTW 内の URL に基づいて、Internet Explorer はページのセキュリティ ゾーンを判定します。上記の例では url=(0023)http://www.contoso.com/ と指定されているため、http://www.contoso.com/ という URL を元に「インターネット」ゾーンと判定しています。

URL の文字数については以下の注意事項があります

  • カッコ内に記述する文字数は実際の文字数 (10進数) です (文字列終端記号は考慮しません)
  • 記述した文字数が後ろに記述した URL の実際の文字数より大きい場合、MOTW は無視されます
  • 記述した文字数が後ろに記述した URL の実際の文字数より小さい場合、URL の内、記述した文字数までの部分でゾーンが判定されます
    従って、最低でも TDL まで含まれるよう文字数を数えて記述する必要があります

また具体的な URL を指定せず、以下のような記述でゾーンを指定することもできます。

  • <!– saved from url=(0014)about:internet –> ※インターネット ゾーンを指定
  • <!– saved from url=(0016)http://localhost –> ※イントラネット ゾーンを指定

なお、Internet Explore で表示中のファイルを [ファイル] メニュー – [名前を付けて保存] で保存した場合も、保存した HTML の !DOCTYPE 宣言の直後に MOTW が自動的に挿入されます。これにより、保存したファイルを Internet Explorer で開いた際、元のサーバーから提供されたページと同様のセキュリティ ゾーンで動作させる事ができます。

参考

2013年12月10日

Favicon の話

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 9:35 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 10 日目です。


現在よく利用されていどのブラウザーでも、「お気に入りアイコン」あるいは “Favicon” と呼ばれる機能がサポートされています。Web サイトを表示した際、ページを表示しているタブやアドレスバーにそのサイト独自のアイコンが表示される動作はおなじみのものでしょうが、これが「お気に入りアイコン」です。また Web ページをブックマーク (Internet Explorer では「お気に入り」) に登録すると、ブックマークの一覧にも同じアイコンが表示されるでしょう。

この機能は元々 Microsoft が Internet Explorer 5 に搭載した独自機能で、それが他のブラウザーにも広まり、HTML5 で標準化されています。

Internet Explorer での Favicon の動作原理は以下のようなものです。

  • あるドメインのサイトを初めて (訪問履歴の無い状態で) 訪問すると、ドメインのルート ディレクトリに対して favicon.ico の GET リクエストを発行します。このリクエストに対して正しいico 形式のファイルが返されれば、ドメインの全てのページで (ページごとに別の指定がない限り) そのファイルに含まれるアイコンが Favicon として利用されます
  • Internet Explorer で利用可能な Favicon のデータは、ico ファイル形式です
    ※ サーバーからファイルが送信されても、そのファイルが正しい ico 形式でなければ Favicon は表示されません。代わりに Internet Explorer の既定のアイコンが表示されます
  • Web ページ単位で、link 要素を利用して表示される Favicon を指定することができます。Internet Explorer では、以下の形式で指定します
    <link rel="shortcut icon" href="/favicon.ico" />
    ※ href 属性に ico ファイルの URL を指定します
    ※ link 要素は head 要素内に記述します
  • 複数のページでお気に入りアイコンが共有されている場合は、最初にダウンロードした ico ファイルが再利用されます。ページを訪問するごとに再ダウンロードされる事はありません
  • Internet Explroer 6 以前は「お気に入り」に登録した場合だけ Favicon が表示されましたが、Internet Explore 7 以降は常に表示されます
  • ダウンロードされた ico ファイルはインターネット一時ファイルに保存され、通常のキャッシュと同様の原理で管理されます。そのためキャッシュが削除されると、ico ファイルが再度リクエストされ、再ダウンロードされます。またページと ico ファイルの関連付けが閲覧の履歴データベース (history) に記録されます。そのため閲覧の履歴を削除した場合も ico ファイルが再ダウンロードされる場合があります
  • Internet Explore 7 以降では、ページをお気に入りに登録すると、アイコンのデータは「お気に入り」フォルダーに作成される .url ショートカット ファイルの NTFS 代替ストリームに保存されます。このためお気に入りから削除しない限り、キャッシュを削除しても Favicon は再ダウンロードされません
    ※ Internet Explorer 6 以前、および「お気に入り」フォルダーの存在するドライブが FAT 形式の場合は、代替ストリームではなくインターネット一時ファイルが利用されます

Favicon についていくつかの Tips を紹介します。

Favicon に含むべきアイコン サイズ

Internet Explorer では、アドレスバーやタブ、お気に入りでの表示に 16 x 16 ピクセルのアイコンを利用します。そのためこのサイズのアイコンは ico ファイルに必ず含めるようにするべきです。その他にも以下のようなサイズのアイコンが利用される場合があります。

  • [新しいタブ] ページ (32 x 32)
  • タスク バー ボタン (32 x 32)
  • ピン留めされたサイトのブラウザーの UI (24 x 24)
  • スタート画面にピン留めしたサイトのタイル (32 x 32)

Favicon の変更を確実にユーザーに反映する

ドメインのルートに置かれた Favicon の変更 (別のアイコンへの変更) を直ちにすべてのユーザーに確実に反映させる方法はありません。各ユーザーの環境でキャッシュ期限が切れるのを待つ必要があります。
link 要素を利用して Favicon を指定している場合は、ico ファイルのファイル名を変更します。link 要素の href 属性で指定されているファイル名と、既にキャッシュされているそのページの Favicon のファイル名が異なる場合、Internet Explorer は Favicon が変更されたと判断し、再ダウンロードして新しいアイコンを反映します。

正しい Favicon が表示されない

サイトの開発者が自分のサイトの Favicon が正しく表示されない事を発見した場合、まず確認すべきなのは指定しているファイルが正しい ico 形式になっているかどうかです。また link 要素で指定している場所に正しく配置されているかも確認する必要があります。
ユーザーが自分の PC で Favicon が正しく表示されない場合には、キャッシュまたは履歴 (もしくはその両方) に不整合が発生している可能性が考えられます。まずキャッシュ (一時ファイル) と閲覧の履歴を削除して、問題が改善するか確認しましょう。

Favicon 用の ico ファイルの作成方法

多くのグラフィック ソフトを含むさまざまなツールが利用できますが、一番手軽なのは X-Icon Editor の Web アプリケーションを利用する方法でしょう。HTML5 の Canvas をサポートしているブラウザーでアクセスすれば、既存の画像から簡単にアイコンが作成できます。

参考

2013年12月9日

ピン留めサイトの Tips

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 7:38 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 9 日目です。


Windows 7 や Windows 8 では、Internet Explore 9 以降のバージョンで表示したサイトをデスクトップのタスクバーに「ピン留め」できます。いったんサイトをピン留めすると、次からはそのピン留めされたアイコンをクリックするだけで既存の Internet Explrer のウィンドウとは別に直接 Web サイトのウィンドウを開くことができます。

ピン留めサイト自体については以下のように色々と資料があるので、そちらをご覧ください。

また Windows 7 や Windows 8  上の Internet Explore 9 以降のバージョンではアドレスバーのお気に入りアイコンをデスクトップなどにドラック&ドロップすると、 WebSite ショートカットを作成できます。この WebSite ショーカットは従来の URL ショートカットと異なり、ピン留めされたサイトと同様、既存の Internet Explrer のウィンドウとは別に直接 Web サイトのウィンドウを開きます。

参考 : IE9で従来と同じインターネット・ショートカットを作成する (http://www.atmarkit.co.jp/fwin2k/win2ktips/1386ie9url/ie9url.html)

タスクバーにピン留めしたサイトや WebSite ショートカットからは、通常に起動した Internt Explorer とは以下の点が異なります。

  • 右側の [ホーム] ボタンが削除され、Web サイトのアイコン (お気に入りアイコン) が [戻る] [進む] ボタンの左側に表示されてます。サイトのアイコンをクリックすると、サイトのホーム ページに戻ります
  • [戻る] ボタンと [進む] ボタンには、サイトのアイコンの基調色が使われます。この色はサイトの制作者がサイトのメタデータで色を指定できます
  • 起動したすべてのウィンドウとタブは、他の Internet Explorer のインスタンスとは別に、タスク バー上で 1 つのグループとして扱われます
  • BHO やツール バーなどが読み込まれません (Flash などの ActiveX は利用可能です)

こうした「ピン留めされた」サイトについての追加情報 (Tips) を二つ解説します。

ホームページを追加する

ピン留めされたサイトでは、通常の Internet Explorer のホーム ページの設定に関わらず、常にピン留めしたサイトがホームページとして機能します。ページを開いてから別のページに移動し、その後で [戻る] [進む] ボタンの左側に表示されるサイトのアイコンをクリックすると、最初に表示したピン留めしたサイトのページが表示されます。この「ピン留め」されたホームページを追加することができます。ホームページを追加すると、最初にピン留めしたサイト以外の別のページも、タスクバーにピン留めしたアイコンや WebSite ショートカットから一緒に開くことができます。

ピン留めサイトにホームページを追加するには、ピン留めサイトを開き、[ツール] – [インターネット オプション] を選択して [インターネット オプション] の [全般] タブを開きます。「さらにホーム ページを追加するには、それぞれのアドレスを行を分けて入力してください」と表示されているので、普通にホームページを設定する場合と同じ手順で追加します。これで次にピン留めサイトを開くと、元々のピン留めしたサイト以外に追加したページのタブも同時に開きます。

image

ウィンドウの設定を変更する

通常の Internet Explorer のウィンドウと、ピン留めしたサイトのウィンドウは、別々にウィンドウの設定を行うことができます。別々にできるのは以下のような設定です。

  • 常にメニューバーを表示するかどうか
  • コマンド バーを表示するかどうか
  • お気に入り バーを表示するかどうかなど、お気に入りバーの設定
  • お気に入りセンターを常にウィンドウの右側に表示するか、などお気に入りセンターの設定
  • タブ バーをアドレスバーと別の行に表示するかどうか
  • ステータス バーを表示するかどうか

ピン留めしたサイトのこれらの設定は以下のレジストリに記録されます

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SiteMode

このようにレジストリに記録される事からもわかるように、これらの設定はすべてのピン留めしたサイトのウィンドウで共通です。特定のピン留めサイトだけ設定を変える、という事はできません。

2013年12月8日

Internet Explorer のアドレス バーの URL 補完

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 12:15 AM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 8 日目です。


Internet Explorer ではアドレス バーに URL を入力する際、それを補助するいくつかの機能が利用できます。この記事ではそのうちの URL 補完機能について解説します。

アドレス バーに URL を入力する際、URL のスキーム (http:// の部分) やホスト名 (多くの場合 www) 、また TLD に相当する部分 (.com や .co.jp) は多くのサイトで同じですから、毎回同じ内容をタイプする事になります。その手間を減らすため、Internet Explorer では二つの入力補助機能を用意しています。

アドレス バーに “hebikuzure” と入力して、それだけで Enter を押すと入力した単語の検索になりますが、その代りに Ctrl + Enter または Ctrl + Shift + Enter を押してみてください。そうするとアドレスバーの内容が “http://www.hebikuzure.co.jp/” となってサイトへのアクセスが行われるでしょう (現時点では実際にはこのサイトは存在しないので、エラーが表示されます)。このようにアドレス バーにテキストを入力して Ctrl + Enter または Ctrl + Shift + Enter を押すと、URL のスキーム (http://) とホスト名 (www) (合せてプレフィックスと呼びます)、および .co.jp (サフィックス) が自動的に補完され、その URL へのアクセスが行われます。

例えば “yamato” と入力して Ctrl + Enter または Ctrl + Shift + Enter を押すと、”http://www.yamato.co.jp/” が開きます。

image

imageCtrl + Enter または Ctrl + Shift + Enter

image

imagehttp://www.yamato.co.jp/” が開きます

image

アドレスを直接入力してサイトのトップページを開く 場合に便利な機能なので、覚えておくと役立つでしょう。

この補完動作はカスタマイズ可能です。以下の方法で Ctrl + Enter および Ctrl + Shift + Enter の動作を個別にカスタマイズできます。

Ctrl + Shift + Enter

  1. [インターネット オプション] を開き、[全般] タブで [言語] をクリックします
  2. [言語の優先順位] ダイアログボックスの [プレフィックスとサフィックスのオプション] でサフィックスを指定しますimage
  3. [入力した Web アドレスの初めに ‘www’ を追加しない] を有効にすると、ホスト名が補完されなくなります
  4. [OK] をクリックして [言語の優先順位] ダイアログボックスを閉じ、[インターネット オプション] を閉じます

ここで設定したサフィックスは、以下のレジストリ値として記憶されます。

キー : HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\QuickComplete
名前 : ShiftQuickCompleteSuffix
種類 : 文字列値 (REG_SZ)

Ctrl + Enter

  1. レジストリ エディタを起動して以下のキーを開きます。キーが存在しない場合は作成します
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\QuickComplete
  2. 以下のレジストリ値を作成します
    名前 : QuickComplete
    種類 : 文字列値 (REG_SZ)
    データ : (プレフィックス).%s.(サフィックス)  ex. http://www.%s.whatever
  3. レジストリ エディタを閉じ、Internet Explorer のすべてのインスタンスを終了します
  4. Internet Explorer の次回起動時から変更が有効になります

レジストリ値のデータでは、プレフィックスとサフィックスの両方が指定できます。例えば “https://www2.%s.net” と指定すると、“https://www2” というプレフィックスと “.net” というサフィックスが補完されます。またこのレジストリ値で設定したプレフィックスは Ctrl + Shift + Enter を押した際の補完でも利用されます (サフィックスは ShiftQuickCompleteSuffix で指定した物が利用されます)。

これらの指定をしない場合は、Ctrl + Enter を押した場合も Ctrl + Shift + Enter を押した場合もプレフィックスとして “http://www.” が、サフィックスとして “.co.jp” が補完されます。ただしサフィックスは Windows の表示言語によって適切な TDL に変更されます。例えば Windows の表示言語が英語 (米国) に設定されている場合は、サフィックスは “.com” になります。

参考

2013年12月7日

Internet Explorer の InPrivate ブラウズ

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 4:32 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の 7 日目です。


どのブラウザーでも、訪問したページの履歴を保存して再度開けるようになっていたり、またフォームに入力した内容やパスワードを記憶しておいて再利用できるようにする「オート コンプリート」の機能を備えています。また Web サイトから永続的 Cookie (Persistent Cookie) として提供された Cookie は、ブラウザーを閉じた後も (サーバーが指定している有効期限が切れるまでは) 保存され続けます。

こうした機能はユーザーにとって、サイトを再訪する際や同じデータの再入力の際の手間を省いてくれたり、またブラウザーを閉じたりコンピューターを再起動しても特定のサイトにログオンし続けられるのでとても便利なのですが、反面そこからユーザーの行動や情報が漏洩するリスクも生じます。特に共有のコンピューターを利用する場合、例えログオン ユーザーが異なっていても、管理者権限を持っているユーザーであれば別のユーザーが保存しているこうした情報にアクセスできる可能性があります。

そのため多くのブラウザーでプライバシー保護の機能の一つとして、このような情報を永続的に保存せずブラウザーを閉じるとすべて削除してしまうモードが用意されています。Internet Explorer にも Internet Explorer 8 以降のバージョンで、「InPrivete ブラウズ」としてこのような機能が搭載されています。Internet Explorer で InPrivate ブラウズを開始する方法は以下の通りです 。

  • ツール バーから InPrivate ブラウズを開始します
    • Internet Explorer 8 の場合 : ツール バーの [セーフティ] をクリックして [InPrivate ブラウズ] を選択します
    • Internet Explorer 9 以降の場合 : ツール バーの [ツール] ボタン ツール ボタン (歯車のマーク) をクリックし、[セーフティ] – [InPrivate ブラウズ] の順に選択します
  • 新しいタブから InPrivate ブラウズを開始します
    • Internet Explorer 8 の場合 : 新しいタブを開き、 [InPrivate ブラウズ ウィンドウを開く] をクリックします
    • Internet Explorer 9 以降の場合 : 新しいタブを開き、画面下側の [InPrivate ブラウズ] または [InPrivate ブラウズを開始する] をクリックします

  • キーボード ショートカットで InPrivate ブラウズを開始します
    • Ctrl + Shift + P

  • コマンドで InPrivate ブラウズを開始します
    • [ファイル名を指定して実行] を開き、次のコマンドを実行します
      iexplore.exe -private

  • スタート画面の Internet Explorer で InPrivate ブラウズを開始します (Windows 8 / 8.1 の場合)
    • Internet Explorer を開き、画面上で右クリック (または画面下端または上端からスワイプ) し、表示されるタブ ツール アイコン タブ ツール アイコン をクリック (タッチ) して [新しい InPrivate タブ] を選択します

  • デスクトップのタスクバーにピン留めした Internet Explorer から InPrivate ブラウズを開始します
    • タスクバーにピン留めした Internet Explorer のアイコンを右クリックし、[InPrivate ブラウズを開始する] をクリックします
      (ピン留めしたサイトのアイコンでも同様の操作でそのサイトの InPrivate ブラウズを開始できます)

InPrivate ブラウズでは以下の動作になります。

  • Cookie を保持しません
    • すべての新しい Cookie がセッション Cookie として扱われます。従ってブラウザーを閉じてセッションを終了すると、セッション中に取得した Cookie はすべて削除されます
    • 既存の (永続的) Cookie は読み取り可能です
    • Web Storage も同様に動作します
  • 一時ファイル (キャッシュ) はブラウザーを閉じてセッションを終了するとすべて削除されます
  • 履歴は記録されません
  • 新規のインターネット一時ファイルは Private ブラウズ ウィンドウの終了時に削除されます
  • フォームへの入力情報は保持されません
  • パスワードは保持されません
  • アドレス バーに入力したアドレスは保持されません
  • 検索ボックスに入力したキーワードは保持されません
  • 訪問済みリンクは保持されません

InPrivate ブラウズが有効か無効かを Web ページのスクリプトから (したがって Web サイトから) 確認する方法はありません。ツールバーや BHO のような拡張機能からは、IEIsInPrivateBrowsing API を利用して現在の状態が確認できます。こうした拡張機能も、InPrivate ブラウズが有効の場合はブラウザー自身の動作に準拠した動作 (永続的な情報保存をしない、またサーバーに送信しない) 事が推奨されています。

とは言え全ての拡張機能がこうしたプライバシーを尊重した動作をするとは限らないので、既定では InPrivate ブラウズを有効にすると、拡張機能 (アドオン) が無効になります。アドオンの動作によってプライバシー保護が完全にならない危険性を理解した上で、InPrivate ブラウズでアドオンを有効にするには、以下の手順を実行します。

  1. (Windows 8 / 8.1 の場合はデスクトップを開き) Internet Explorer を起動します

  2. [ツール] ツール ボタン をタップまたはクリックし、[インターネット オプション] をタップ (クリック) します

  3. [プライバシー] タブを開き、[InPrivate ブラウズの開始時に、ツール バーと拡張機能を無効にする] のチェック ボックスをオフにし、[OK] をタップ (クリック) します

    image

参考

2013年12月6日

Web Storage と IndexDB の使用領域を管理する

Filed under: Yet Another Internet Explorer Advent Calendar 2013 — hebikuzure @ 9:52 PM

この記事は “Yet Another Internet Explorer Advent Calendar 2013” の6日目です。


Internet Explorer 8 以降のバージョンでは、Web サイトがローカル コンピューター上に様々な情報を保存するための手段として、従来からの Cookie に加えて Web Storage (DOM Storage) が搭載されています。また Internet Explorer 10 以降ではそれに加えて IndexedDB搭載されています

Web Storage の搭載に伴い、それ以前のバージョンで実装されていた userData (常設データ) は非推奨となり、IE10 以降で廃止されています。

これらの機能を利用すると Web サイトはユーザーの許可や操作なしに、ローカル コンピューター上に Cookie より多くのデータを保存する事が可能になり、保存されたデータは、Web Storage  localStorage と IndexedDB で永続的 (Internet explorer を終了して Web サイトとのセッションを終了しても削除されない) です。そのため多くのサイトが無制限にデータを保存すると、ユーザーのディスク領域に影響を与えたり、パフォーマンス上で問題が生じたりする可能性があります。そのため例えば Web Storage の W3C の仕様ではオリジンごとの保存容量に上限を設定することを推奨しています。

オリジンについてははせがわさんのこの記事で分かりやすく解説されています。

Internet Explorer 10 以降のバージョンでは、この容量を管理する手段として [Web サイトのデータの設定] ダイアログ ボックスの [キャッシュおよびデータベース] タブで提供しています。

image

このダイアログ ボックスで、Web Storage や IndexedDB のデータが一定を超えた場合に警告を表示したり、そのような場合に特定の Web サイト (オリジン) に対して制限値を拡張してより多くのデータが保存できるようユーザーが許可したりできます。また特定の Web サイト (オリジン) を選択して、保存済みのデータをすべて削除する事もできます。

この制限値 (既定は 10MB) はグループ ポリシーで設定できます。以下のポリシーを構成してください。

管理用テンプレート
– Windows コンポーネント
– Internet Explorer
– インターネット コントロール パネル
– [全般] ページ
– 閲覧の履歴
– Web サイトの既定の記憶域制限を設定する

またこれらのデータは [閲覧の履歴の削除] で [クッキーと Web サイト データ] にチェックを入れて削除を実行した際にも、(全てのオリジンからのデータが) 削除されます。

image

参考 : IndexedDB Updates for IE10 and Metro style apps (http://blogs.msdn.com/b/ie/archive/2012/03/21/indexeddb-updates-for-ie10-and-metro-style-apps.aspx)

« Newer PostsOlder Posts »

WordPress.com で無料サイトやブログを作成.

%d人のブロガーが「いいね」をつけました。