• このエントリーをはてなブックマークに追加
【仕様】RPGアツマールのセキュリティ上の制限について
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

【仕様】RPGアツマールのセキュリティ上の制限について

2016-12-08 19:41

    2017-10-06更新
    以下の機能が追加で緩和されました。
    緩和された機能
    • HTML埋め込みのインラインスクリプトの許可
    • data-urlとblobをjs等のスクリプトとして利用可能に
    • blobを画像として利用可能に
    • data-url/blobを動画/音声として利用可能に
    • WebWorkerの許可
    • Pointer Lock API/Orientation APIの許可
    ※ブラウザによって利用できる機能に差異があります。

    RPGアツマールは安全にゲームをプレイいただくために、ゲームに対してセキュリティ上の制限をしています。
    我々はこの制限を「サンドボックス機能」と呼んでいます。サンドボックスとは「砂場」のような安全な環境をさす技術用語です。このサンドボックス機能によりTwitterプラグインが利用できない等高度なゲームを作りたいかたの制限になっているという声をいただいています。そこで、本稿ではそうしたかたが制限を正しく理解し、対応できるように仕様を開示します。

    ■誰を対象にしているか
    高度なプラグインを使いゲーム開発をしたい人

    ■サンドボックスはどのように実現されているか
    RPGアツマールは3層のiframeを重ねてゲームページを描画しています。

    c7f84dbd88ffb2153e872e2f9e31a6a6ec584f01

    前面 webサービスレイヤ
     ユーザーの目に取れるwebパーツが描画されているレイヤです

    中間 コメントエンジンレイヤ
     前面や最奥のレイヤと通信を行い、webサービス独自の機能を付加するためのレイヤです。たとえばwebサービスレイヤの「コメントOFF」命令を受け取り、ゲームレイヤで描画しているコメントを消します。

    最奥 ゲームレイヤ
     RPGツクールMVが動作しているレイヤです。コメント描画もこのレイヤで行っています。

    コメントエンジンレイヤとゲームレイヤにはCSP (Content Security Policy) とSame Origin Policyを設定しています。

    また、投稿されたゲームデータを精査し、安全なファイル形式のみを公開しています。

    ■サンドボックス下の制限
    ○ゲーム配信サーバ以外へのインターネットアクセスを制限しています
     回避策:特にありません。

    ○window.alertやwindow.prompt等のmodalウィンドウを制限しています
     回避策:ピクチャ機能等、RPGツクールMVの標準機能をご利用ください
     
    ○ページ遷移や別windowの表示を制限しています
     回避策:特にありません。

    ○index.htmlに埋め込みでjavascriptを書くことを制限しています
     RPGアツマールでは投稿時にindex.htmlを精査し、安全なものに差し替えをしています。
     そのため、埋め込みでjavascriptを書くことはできません。
     回避策:RPGツクールMVのplugin機能をご利用ください

    ○iframeを使用することができません
     別ドメインのデータ読み込みになるため、制限しています。
     回避策:特にありません。

    ○許可されたファイル形式しか投稿できない
     ヘルプに記載されたファイル形式しか投稿できません。
     ファイル形式は拡張子ではなく中身をチェックしています。
     回避策:特にありません。jpegファイルのpng拡張子偽装のみ特別に許可しています


    ■おわりに
    セキュリティ上の制限はユーザーを守るために欠かせないものです。
    しかし、我々は窮屈なゲーム制作環境を提供したいわけではありません。
    ですので、ユーザーの安全に影響しない限定的な制限解除については、前向きに検討していきたいとおもっています。性質上どうしても時間がかかるものではあるのですが、一緒に良い環境を作れたらと考えています。

    Twitterやchatでご意見いただけますと幸いです。

    ■参考
    CSP (Content Security Policy) - Web セキュリティ | MDN
    https://developer.mozilla.org/ja/docs/Web/Security/CSP

    同一オリジンポリシー - Web セキュリティ | MDN
    https://developer.mozilla.org/ja/docs/Web/Security/Same-origin_policy
    コメントを書く
    コメントをするには、
    ログインして下さい。