Hatena::Diary

葉っぱ日記 このページをアンテナに追加

[ はせがわの連絡先 ]   [ 定番情報源 ]   [ アンテナ ]  [ ブックマーク ]   [ カレンダー ]   [ はてなRSSに追加 ]  
 | 

2008-01-16

hasegawayosuke2008-01-16

[] ブックマークレットを外部ファイルに書く方法(IE限定)  ブックマークレットを外部ファイルに書く方法(IE限定) - 葉っぱ日記 を含むブックマーク

一昨日のWizard Bibleで紹介されていたブックマークレット本体を外部に置く方法を見ていて、似たようなのを読んだ気がしていたのを思い出したので書いてみます。

本日の参考文献: Windows Script Programming: セキュリティレベルを上げるとブックマークレットが使えなくなる。

IEでローカルにおいてあるHTMLファイルを file: (だったり単純に C:\path\... だったり) で開いた状態でブックマークレットを実行しようとすると、ローカルコンピュータゾーンのロックダウンにより「セキュリティ保護のため、コンピュータにアクセスできるアクティブ コンテンツは表示されないよう…」という警告が表示され、ブックマークレットはすぐには実行されません。また、「制限付きサイト」に登録してスクリプトの実行を禁止した状態では、警告の表示もないままスクリプトの実行はブロックされます。

ブックマークレットは、表示されているコンテンツのドメインで動作しますので、スクリプトの実行が禁止されたローカルコンピュータや制限付きサイトでブックマークレットが動作しないのは当然なのですが、やはりちょっと不便に感じるときがあります。

そこで、ブックマークレットではなくWSHを起動し、そのWSHから起動済みのIEにアクセスすることで、ゾーンによる制限を回避できます。

手順としては以下の通り。

  1. IEのアドレスバーに "shell:favorites" と入力
  2. 「お気に入り」フォルダが開かれるので、適当なファイルを作成し、"PVVN1ch1VV4.js" にリネームします。
  3. PVVN1ch1VV4.jsの中身を以下のようにして保存します。
var Shell = new ActiveXObject( "Shell.Application" );
var ie = Shell.Windows().Item();
var window = ie.Document.parentWindow;
window.alert( window.document.location + " PVVN1ch1VV4!" );

これで、IEのお気に入りに「PVVN1ch1VV4.js」が追加され、クリックすると*1ゾーンの設定とは無関係にブックマークレット(のようなWSH)が実行できます。

もちろん、ローカルコンピュータゾーンや危険なサイトを登録しているであろう制限付きゾーンでスクリプトを動作させるわけですから、スクリプトの内容については細心の注意を払う必要があります。

*1:既定のスクリプトホストがCScript.exeに割り当てられているときはコマンドプロンプトが一瞬表示されます。その場合は、コマンドプロンプトを開き、"CScript.exe /H:WScript" を実行するとよいでしょう。詳細は「既定のスクリプト エンジンを設定します。」などを参考にしてください

 | 
11/05 15:07 複数の TCP の実装におけるサービス運用妨害 (DoS) の脆弱性
富士通の JVNVU#943657への対応が更新されました。
11/04 15:16 Roundcube Webmail におけるクロスサイトリクエストフォージェリの脆弱性
Roundcube Webmail Project が提供する Roundcube Webmail には、クロスサイトリクエストフォージェリの脆弱性が存在します。
11/04 15:00 Roundcube Webmail におけるクロスサイトリクエストフォージェリの脆弱性
Roundcube Webmail Project が提供する Roundcube Webmail には、クロスサイトリクエストフォージェリの脆弱性が存在します。
10/29 17:24 Oracle 製品における複数の脆弱性に対するアップデート
Oracle から複数の製品およびコンポーネントに含まれる脆弱性に対応した Oracle Critical Patch Update Advisory - October 2009 が公開されました
10/28 15:00 SEIL/X シリーズおよび SEIL/B1 におけるサービス運用妨害 (DoS) の脆弱性
SEIL/X シリーズおよび SEIL/B1 には、サービス運用妨害 (DoS) の脆弱性が存在します。
[ はせがわの連絡先 ]   [ 定番情報源 ]   [ アンテナ ]   [ ブックマーク ]   [ カレンダー ]   [ はてなRSSに追加 ]  
PV=1210871 since 2005-08-06