の場合、フレーム祖先ディレクティブを取得します。私はframe-ancestors https://*.parent.com
を設定した場合、私はframe-ancestors *.parent.com
を設定した場合、我々は我々がhttps://child.com
のための違反を持っている明白な違反 CSP url-scheme http://リソースのスキームがhttp://またはhttps://
- :私は
https://child.com
とhttp://child.com
の両方で私のページをロードするためにhttp://*.parent.com
をできるようにしたいと言います。 - 私が
frame-ancestors http://*.parent.com
と設定すると、どちらの場合でも動作します。どうして ?
CSP2 specから引用
:
- ソース式は、URLスキームのための大文字と小文字を区別しない一致しない方式の部分がある場合、リターンがありません合わない。
- ソース式は、スキームを持っていない場合は、次のいずれかに該当する場合、戻り値は一致しません:保護されたリソースのURLの
- スキームは、HTTPのための大文字小文字を区別しないマッチングで、かつ、URLスキームがありますHTTPまたはHTTPSの大文字と小文字を区別しない一致
- 保護されたリソースのURLのスキームは、HTTPの大文字と小文字を区別しない方式であり、保護されたリソースのURLのスキームではurl-schemeは大文字と小文字を区別しません。
https://child.com
は、私は理解していることを、HTTPの一致ではないので、私の例の
ケース2は、スペックの条件5.2に従ってチョークなければなりません。
しかし、なぜケース3はhttps://child.com
で動作しますか?条件4によると、http://*.parent.com
がhttps://child.com
のスキームと一致しないため、失敗するはずです。私は何が欠けていますか?