親でiframeに許可されていることを制限する方法はありますか?私が探しているのは、次のようなJavascriptを取り巻くセキュリティモデルです。
...
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function AllowedToAccess()
{
}
function NotAllowedToAccess()
{
}
</script>
<security>
iframe {
Deny All;
Allow javascript:AllowedToAccess();
}
iframe script.untrusted {
Deny All;
}
</security>
<iframe src="trusted.html"></iframe>
<iframe src="http://www.somesite.com/trusted.html"></iframe>
...
両方の'trusted.htmlは次のようになります。
<html><body>
<script type="text/javascript">
function InternalCall()
{
window.parent.AllowedToAccess();
}
function InternalCall2()
{
window.parent.NotAllowedToAccess();
}
</script>
<security>
javascript:window.parent {
Allow javascript:document.body.offsetHeight;
Allow javascript:document.title;
}
script.untrusted {
Deny All;
}
</security>
<script type="text/javascript">
window.parent.AllowedToAccess();
InternalCall();
</script>
<script type="text/javascript" src="http://www.anothersite.com/untrusted.js" secclass="untrusted"></script>
<script type="text/javascript">
window.parent.NotAllowedToAccess();
InternalCall2();
window.parent.jQuery(window.parent.body).append('<div id="badid"></div>');
window.parent.jQuery('#badid').load('SomethingIShouldnt.php');
</script>
</body>
</html>
そして、「SomethingIShouldnt.php」は次のようになります。
NotAllowedToAccess();
そして、「untrusted.js」は次のようになります。
window.parent.AllowedToAccess();
InternalCall();
window.parent.NotAllowedToAccess();
InternalCall2();
window.parent.jQuery(body).append('<div id="badid"></div>');
window.parent.jQuery('#badid').load('SomethingIShouldn't.php');
(ええと...やり過ぎてごめんなさい。)
HTMLコードに存在しない「セキュリティ」タグがあります。ルールを定義するためにApacheのようなセキュリティ構文が混在しているCSSセレクター風の宣言に沿って何かを考えていました。(私はwindow.parentルールを利用しませんでしたが、クロスサイトスクリプティングをブロックするブラウザーに対して適切な回避策を示していることを願っています。タイトル")。私はこのようなものがすでに何らかの形で存在していることを望んでいます(ドラフト仕様でさえ)。しかし、私は答えが「いいえ」になるのではないかと心配しています。
これは(部分的にでも)実行できますか?そうでない場合は、このようなものを実装するために誰と話す必要がありますか(標準委員会またはブラウザーの実装者)?もちろん、これは意味があると仮定しますか?