ITMediaにとんでもなく危険なLifeHackが載ってる件
しかも、「mshta [任意のURL]」と入力すれば、WebページをHTA(HTMLアプリケーション)として開くことも可能だ。
「ファイル名を指定して実行」の便利な使い方(その1) - ITmedia エンタープライズ
このTips、HTMLアプリケーションとしてWebページを実行した場合はIEのセキュリティゾーンがローカルコンピュータの状態で実行されるから、表示したWebページでは「どんなスクリプトでも」動かせてかなり危険。
以下のようなスクリプト(MicrosoftのJScriptについてのヘルプに載ってるサンプル)を含んだHTMLを上記の方法で表示してみたよ。
<script> var fso = new ActiveXObject("Scripting.FileSystemObject"); var a = fso.CreateTextFile("c:\\testfile.txt", true); a.WriteLine("This is a test."); a.Close(); </script>
普通にIEで表示したら、ActiveXObjectコントロールの作成のところできちんとエラーになったけど、上記の方法だと当然エラーにならなくて(HTMLアプリケーションとしては当然)、見事にファイル作成に成功。
ちょっとコードかえれば、HDD内のファイル全削除やレジストリ書き換えも普通に出来るからかなり危険。
分かってて信頼しているサイトのみ見るならまだしも(それにしたってかなり恐いけど)、件の記事にはそこらへんの注意事項も載ってないから安易に実行する人がでそうで恐い。
上記の記事には注意事項の追記を要望します。
追記
「セキュリティゾーンがローカルコンピュータの状態で実行される」は間違いかも。
HTA の 信頼関係ステータスは、セキュリティ ゾーン オプションに従うすべての操作にまで拡張されます。要するに、ゾーンセキュリティはオフということです。したがって、HTAは、クライアント マシン上のゾーン セキュリティ設定とは関わりなく組み込みの ActiveX® コントロールや Java アプレットを実行できます。こういったオブジェクトがダウンロードされ、HTA 内で実行されるときには、その前に警告メッセージはいっさい表示されません。
http://www.microsoft.com/japan/msdn/workshop/author/hta/overview/htaoverview.asp
ローカルコンピュータのセキュリティゾーンは、今は表示はされないけど生きてるのかな?
だとすると(レジストリの設定などで)ローカルコンピュータゾーンでの実行を安全にすることもできるのだろうけど……、上記の説明ではそれ以前にセキュリティゾーンによるセキュリティが一切ありませんよ、と。
つまり、より危険であるということですな^^;