iOSのショートカットアプリではJavaScriptを含むショートカットを実行する際に次のようなアクセス許可を求める通知が出ます。
"ショートカット名"に"example.com"へのアクセスを許可しますか?
特に初めてショートカットを実行する時に出る内容ですが、説明が分かりにくいので初心者の方向けに内容をまとめました。
Appleのユーザーガイドに説明がありますが、もっと噛み砕いて解説します。
「アクセスを許可しますか?」ってどういう意味?
iPhoneやiPadのショートカットアプリでJavaScriptを実行する時、初回実行時に以下のようなアクセス許可の確認通知が出ます。
"xxx"に"xxx.com"へのアクセスを許可しますか?
このショートカットを実行すると常に、"xxx"が現在のWebページと通信できるようになります。これには、パスワード、電話番号、クレジットカードなどの機密情報の読み取りも含まれます。
以上のような説明で「キャンセル」と「許可」の選択を迫られます。
当然許可しないと実行出来ないわけですが、"機密情報の読み取りも含まれます。"という気になる一文があり、このまま許可ボタンを押して良いのかどうか迷います。
そこで調べたところ、Appleのユーザーガイドに説明があるのを見つけました。
読んでいただければ分かると思うのですが、ここではもう少し詳しく解説します。
機密情報の読み取りが含まれるのは危険では?
この記事を書こうと思ったのには訳がありまして、それは別の記事で
「パスワード」「電話番号」「クレジットカード」などの機密情報の読み取りも含まれるとありますが、かなり危険ではないですか?
という旨のコメントをいただいたからです。
確かに、機密情報が読み取られるとあれば誰でも不安になります。
結論から申し上げますと機密情報が載っているページで悪意のあるJavaScriptを実行しなければ問題ありません。
公式サイトのユーザーガイドには以下のように書いてありました。
「WebページでJavaScriptを実行」アクションを含むショートカットを実行すると、そのショートカットがWebページを操作しようとしていることを通知するプロンプトが表示されます。これは、パスワード、電話番号、クレジットカード情報などの機密の可能性があるWebページ上のデータにそのショートカットがアクセスできることを示します。
大切なのは後半の"Webページ上のデータにそのショートカットがアクセスできるようになることを示します。"の部分です。
つまりこれはWebページ(サーバー側)から何かされるという訳ではなく、ショートカット(スマホ側)からWebページ上のデータにアクセスできることを意味します。
で、どういう場合にマズイのかというと個人情報などの機密情報が載っているページで悪意のある…例えばそのWebページ上のデータを丸々外部に送信するプログラムなどを実行してしまうと、第三者に機密情報が抜かれる可能性があるという事です。
JavaScriptというのは基本的にはブラウザ側で処理されるプログラムです。
なのでWebページ⇔ショートカットの通信が出来るようになっても問題はありません。何かをするのはあくまでもブラウザ(スマホ側)ということですね。
こんなコードあるのか知りませんが「コピペしてログインページで実行してね☆」というようなコードは危険度高めという事です。
一番良いのは機密情報がないWebページで信頼できるJavaScript(処理内容が理解できていればなお良し)だけを実行することなのは言うまでもありませんが、機密情報が載っていなければそこまで慎重にならなくてもOKだと思います。
アクセス許可はサイト、ショートカットごと
許可の意味が分かったところで、ここからはアクセス許可についてのポイントです。
まず、アクセス許可の通知はショートカットで"WebページでJavaScriptを実行"というアクションを含むショートカットを実行する際(初回のみ)に出ます。
SafariのアクションでJavaScriptを実行というのを使っている場合ですね。
そしてこのアクセス許可は「サイトごと」「ショートカットごと」に行います。
サイトAでショートカットAを実行した時、一度許可ボタンを押せば、それ以降は同じサイトで同じショートカットを実行する際にアクセス確認の必要はありません。
しかし、サイトBでショートカットAを実行する時やサイトAでショートカットBを実行する時には初回のアクセス許可が出現するといった感じですね。
アクセス許可後もセキュリティは維持される
アクセス許可が確認されるのは初めてのサイトで初めてのショートカットを実行する時だけですが、ユーザーガイドによればアクセス許可後もJavaScript実行時に悪質なスクリプトではないか?マルウェアが含まれていないか?の分析チェックは行われるようです。
一応JavaScriptの実行時(Webページ操作前)にある程度のスキャンはされているみたいです。なので自分でコードを書いた場合も、コードを拾ってきて実行する場合も少し安心してアクセス許可できますね。
とはいえJavaScriptの処理内容が分からない方はむやみやたらに実行しないように気を付けましょう。
まとめ
ショートカットアプリでJavaScript実行時に出るアクセス許可についてでした。
JavaScriptはWebページを操作するのにピッタリのプログラム言語で、便利なコードもたくさんありますが、知らないで使わされると危険な言語でもあります。
多くの人に利用されていたり、ギャラリーに公開されているショートカットは比較的安全と言えますので適切に判断して使用しましょう。
この記事で皆さんの「許可ボタン」を押す時の不安が軽減されれば幸いです。
ではではこのへんで・w・