閉じる
閉じる
×
2017-10-06更新以下の機能が追加で緩和されました。
緩和された機能※ブラウザによって利用できる機能に差異があります。
- HTML埋め込みのインラインスクリプトの許可
- data-urlとblobをjs等のスクリプトとして利用可能に
- blobを画像として利用可能に
- data-url/blobを動画/音声として利用可能に
- WebWorkerの許可
- Pointer Lock API/Orientation APIの許可
RPGアツマールは安全にゲームをプレイいただくために、ゲームに対してセキュリティ上の制限をしています。
我々はこの制限を「サンドボックス機能」と呼んでいます。サンドボックスとは「砂場」のような安全な環境をさす技術用語です。このサンドボックス機能によりTwitterプラグインが利用できない等高度なゲームを作りたいかたの制限になっているという声をいただいています。そこで、本稿ではそうしたかたが制限を正しく理解し、対応できるように仕様を開示します。
■誰を対象にしているか
高度なプラグインを使いゲーム開発をしたい人
■サンドボックスはどのように実現されているか
RPGアツマールは3層のiframeを重ねてゲームページを描画しています。

前面 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