質問するログイン新規登録

回答編集履歴

2

コメント内容を充実

2018/01/25 18:50

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  これは悪意あるスクリプトをローカル環境で実行することによる**情報漏えい**(ローカル画像のパスを直接指定し, `canvas`要素を使ってURL文字列化して外部に送信する手法)を防ぐためのものです.
4
4
 
5
5
  NOTE:
6
- `canvas`要素ではこの「危険な画像の出力」を**origin clean flag**と呼ばれる内部フラグで管理しており, **同一生成元ポリシー**に反する操作(例えば異なるオリジンにある画像を書き込む)を行うことでこのフラグが`false`に設定され, この状態をしばしば**オリジンクリーンフラグが汚染された**と形容します.
6
+ `canvas`要素ではこの「危険な画像の出力」を**origin clean flag**と呼ばれる内部フラグで管理しており, **同一生成元ポリシー**に反する操作(例えば異なるオリジンにある画像を書き込む)を行うことでこのフラグが`false`に設定され, この状態をしばしば**オリジンクリーンフラグが汚染された**と形容します. オリジンクリーンフラグが汚染された`canvas`要素に対して上記メソッド群を実行するとエラーとなります.
7
7
 
8
8
  NOTE:
9
9
  `File`オブジェクトを介したローカル画像の書き込みは**ユーザーの操作によって書き込まれたことが明らか**であることからオリジンクリーンフラグを汚染しません.

1

エラーを発生しうるメソッドのリストを追加

2018/01/25 18:50

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -1,6 +1,6 @@
1
- chromeではローカル環境(HTML文書のURLが`file://`から始まるもの)における`toDataURL`メソッドの実行が**許可されていません**.(実行するとセキュリティエラーが発生する)
1
+ chromeではローカル環境(HTML文書のURLが`file://`から始まるもの)における`toDataURL`(`toBlob`,`getImageData`,`captureStream`)メソッドの実行が**許可されていません**.(実行するとセキュリティエラーが発生する)
2
2
 
3
- これは悪意あるスクリプトをローカル環境で実行することによる情報漏えい(ローカル画像のパスを直接指定し, `canvas`要素を使ってURL文字列化して外部に送信する手法)を防ぐためのものです.
3
+ これは悪意あるスクリプトをローカル環境で実行することによる**情報漏えい**(ローカル画像のパスを直接指定し, `canvas`要素を使ってURL文字列化して外部に送信する手法)を防ぐためのものです.
4
4
 
5
5
  NOTE:
6
6
  `canvas`要素ではこの「危険な画像の出力」を**origin clean flag**と呼ばれる内部フラグで管理しており, **同一生成元ポリシー**に反する操作(例えば異なるオリジンにある画像を書き込む)を行うことでこのフラグが`false`に設定され, この状態をしばしば**オリジンクリーンフラグが汚染された**と形容します.