全くウケの悪いプログラミングの話。というかプログラムってほどでもない自己満足なHTML。
勤務中、待機時間は職場のPCを使ってネットでヒマつぶしをしているのだが、使っているブラウザは Internet Explorer 6。Flash Player なんか9のままだ。YoutubeやらYahooやらバージョンアップしろとうるさいが、管理者権限でないと WindowsUpdate すらかけられない。もちろん他のブラウザを入れることすらできない。
IEが古くても別段サイトを見たりブログをアップするのに問題ないからいい。面倒なのは「お気に入り(ブックマーク)」の管理。会社の共用PCなのでさすがに友人や自分のサイトをブックマークするのは周囲に見られてよろしくない。とはいえ毎回検索かけたり手入力も面倒。個人フォルダにショートカットを保存してもいいが、誰でも開けるので誰かがクリックしたらバレる。そんなわけで開いてもわからないように以前からこんな偽装ページのHTMLファイルをローカルに置いている。
って、どこが偽装? と思われるだろうが、実はIEデフォルトの404ページ「ページが見つかりません」のフリをして下にリンクがうっすらと隠してある。背景に同化して見えるか見えないかの■に、マウスポインタを合わせるとこの通りポップアップが。職場でコツコツと改良を重ね、他人にバレないように作った自分専用のブックマークページ。わざわざマウスポインタも手の形にならないようにする念の入れよう。
Ctrl+Aを押すと文字列がこの通り。WebメールのURLとか、同人用の非公開チャットやBasic認証をかけたサイトもここにリンクしてある。
ただしバレたときのことを考えてパスワードは置いていない。それにIEの「パスワード保存」にもチェックは入れないようにしている。でもBasic認証のページは毎回ユーザー/パスワード入力がめどいので何とかならないものかとヒマつぶしに改良してみた。JavaScript を仕込んでなかなかいい感じに。
だがやはりローカルファイル内にパスワードを保存しておくのは良くない。元に戻すことにしよう。消す前にもったいないのでソースを公開してみる。隠しページとか、隠しパスワードをゲットとか、そういうダンジョン的なお遊びに応用してみると面白いかもしれない。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>HTTP 404 未検出</title>
<script type="text/javascript">
function clipB(txt) {
window.clipboardData.setData("Text",txt);
}
</script>
<style type="text/css">
body {color:#f4f4f4; font-size:14px;}
a {color:#fbfbfb; text-decoration:none;}
a:hover {color:#cccccc; text-decoration:none;}
.popup01 a {position:relative; cursor:default;}
.popup01 a span {
position:absolute;
top:15px;
left:22px;
padding:3px;
visibility:hidden;
background:#ffffcc;
border:1px solid #cccccc;
color:#000000; font-size:12px;
}
.popup01 a:hover,.popup01 a:hover span {visibility:visible;}
</style>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="0" height="100%">
<tr>
<td valign="top">
<!-- dummy display -->
<table width="400" cellpadding="3" cellspacing="5">
<tr>
<td valign="top" align="left">
<img src="res://C:\WINDOWS\system32\shdoclc.dll/pagerror.gif" width="25" height="33" alt="error" />
</td>
<td width="360">
<h1 style="color:black; font:13pt/15pt MS Pゴシック">ページが見つかりません</h1>
</td>
</tr>
<tr>
<td width="400" colspan="2">
<span style="color: black; font: 9pt/12pt MS Pゴシック">検索中のページは、削除された、名前が変更された、または現在利用できない可能性があります。</span>
</td>
</tr>
<tr>
<td width="400" colspan="2">
<div style="color: black; font: 9pt/11pt MS Pゴシック"><hr style="color:#c0c0c0" noshade="noshade" />
<p>次のことを試してください:</p>
<ul>
<li>アドレス バーにページ アドレスを入力した場合は、ページ アドレスを正しく入力したかどうかを確認してください。</li>
<li><a href="http://www.google.co.jp/" style="color:#4e4e4e; text-decoration:underline; font-weight:normal">www.google.co.jp</a> ホーム ページを開いてから、表示する情報へのリンクを探してください。</li>
<li>別のリンク先を表示するには、<a href="http://www.google.co.jp/" style="color:red; text-decoration:underline; font-weight:normal"><img src="res://C:\WINDOWS\system32\shdoclc.dll/back.gif" border="0" alt="back" />[戻る]</a> ボタンをクリックしてください。</li>
<li><a href="http://www.google.co.jp/" style="color:red; text-decoration:underline; font-weight:normal"><img src="res://C:\WINDOWS\system32\shdoclc.dll/search.gif" width="16" height="16" border="0" align="middle" alt="search" /> [検索]</a> ボタンをクリックして、インターネット上の情報を検索してください。</li>
</ul>
<p><br /></p>
<h2 style="font:9pt/11pt MS Pゴシック; color:black">HTTP 404 - ファイル未検出<br />Internet Explorer</h2>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="bottom">
<!-- personal bookmark -->
<table cellspacing="10" cellpadding="4" border="0">
<tr>
<td class="popup01">
mezzo.jp<br />
<a href="http://www.mezzo.jp/" target="_blank"
onclick="clipB('password')">■<span
style="width:50px">mezzo.jp</span></a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
3行目の赤字 <!– saved from url=(0014)about:internet –> はIEでローカル上のファイルのJavaScriptを走らせるためのおまじない。ただし末尾の改行コードはCRLFでないとダメなそうな。ローカルファイル上でIEのエラー表示を回避するだけなので、ネット上にアップするなら必要ない。
青字部分は隠しリンクのポップアップ用CSS。灰色部分は擬装用IE404ページデザイン部分。
最後のclipB( ) 関数はリンクをクリックしたら「password」の文字列をクリップボードに転送する機能。昔はURLに http://user:password@www.mezzo.jp などのようにBasic認証をURLに仕込めたが、ブラウザのセキュリティ強化で今はできない。なので仕方なくクリップボードを使って入力の手間を省くだけ。認証時にフォームにペーストする必要はある。またクリップボード転送はIEのみ有効なので他のブラウザでは使えない。それにクリップボードを2つ保有することはできないのでユーザー名は別に入力する必要がある。でも長くて複雑なパスワードをコピペできるのはラクだ。
とはいえソースで見える場所にパスワードを置いておくのは極めて危険なので推奨できない。セキュリティの必要なページにそのまま使って、パスワードを盗まれるなどの被害に遭っても責任は持てないのであしからず。
相変わらず爽やかに凝った事をしてらっしゃいますね。
話は変わりますが、「聖おにいさん」が大英博物館に展示されたとか言う話です。
何とも素晴らしい話ではないでしょうか。
爽やかというよりはドロドロな感じですけどねw
ありがとうございます。
聖☆おにいさんすごいですね>大英博物館
宗教がらみの難しいネタをさらりとギャグに昇華できていて、なおかつ最新刊でも息切れしてないからさらにすごい。
しかしマンガ・アニメの評価は海外から行われるのが悲しい限りですね。
浮世絵もフランス印象派が注目してからやっと日本でも芸術としての価値が認められたぐらいですし。
あ、つまりお役人にお金が入らないからダメなのか…>天くd(ry