人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

facebookでアプリを作っていますが、ie10での挙動で質問があります。
アプリタイプは、キャンバス型アプリやタブ型アプリのiframe内で動くwebアプリです。
添付のコードを読み込むと「セキュリティで保護されているコンテンツのみ表示されます。」と警告が出ます。
これをieのセキュリティー設定でなく、コード側で回避する方法をご存知の方いますか?
当然appIdは、取得したアプリIDに変更して実行しています。

例えば、セブンイレブンアプリは警告が出ません。
警告を回避するロジックはどのような方法があるかご指導いただければ幸いです。
https://apps.facebook.com/the_seven_quiz/


よろしくお願いします。

●質問者: appfb
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から

テストコード元
http://facebook-docs.oklahome.net/archives/51972911.html

<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <title>Disp Test</title>
</head>

<body>
<div id="fb-root"></div>
<script>
 window.fbAsyncInit = function() {
 FB.init({
 appId : 'XXXXXXXXXXXXXXX',
 status : true,
 cookie : true,
 xfbml : true
 });
 };

 (function() {
 var e = document.createElement('script');
 e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
 e.async = true;
 document.getElementById('fb-root').appendChild(e);
 }());
</script>

</body>
</html>

1 ● うぃんど
●100ポイント ベストアンサー

コード側で回避できたら、それはセキュリティホールです。

何のために「セキュリティで保護されているコンテンツのみ表示されます。」という仕組みになっているのかを考えればわかるはずですよ。

Internet Explorer 9 以降での "セキュリティで保護されたコンテンツのみ表示" 通知について
http://support.microsoft.com/kb/2625928/ja


質問文追加に対する返答

例えば、セブンイレブンアプリは警告が出ません。
警告を回避するロジックはどのような方法があるかご指導いただければ幸いです。
https://apps.facebook.com/the_seven_quiz/

セキュリティを回避するロジックがあったら、ウィルスとかに利用されてしまいます。
セブンイレブンがそんな奇抜で危険な手段を取る利点はありません。
定めに従って、すべての通信をhttpsで行っているだけです。


appfbさんのコメント
こんにちは。 質問が良くなかったですね。 例えば、セブンイレブンクイズのアプリなどは警告が出ません。 ieのセキュリティをうまく回避するロジックはどのような方法があるかご指導いただければ幸いです。 https://apps.facebook.com/the_seven_quiz/

うぃんどさんのコメント
セキュリティを回避するロジックがあったら、ウィルスとかに利用されるでしょう? セブンのfacebookページで警告が出ない理由は以前の質問で回答いただいたとおり、 画像も含めてすべてhttpsで通信しているからです。 あなたも同様にしたいのであれば、 https対応のサーバーでWEBサイトを構築する必要があるということになります。

appfbさんのコメント
なるほど・・・ 基本的なことがわかってないのでしょうね。 Xサーバーを利用しているのですが、共有SSLアドレスを設定しているし、facebookのアプリ基本設定で『セキュリティで保護されたキャンバスのURL』には共有SSLアドレスをセットしているので、てっきりSSL通信を行っているものとばかり思っていました。 確かにfacebook側のセキュア通信をオフにするとメッセージは出なくなりました。 早速、独自SSLを取得してみたいと思います。 ありがとうございました。

うぃんどさんのコメント
同じ共有SSLを使っている別サイトがfacebookとトラブルを起こしていない限り、 共有SSLでも独自SSLでも同じ挙動になるはずですよ。 iframeの中に表示されるhtmlファイルの中にhttp通信を行う記述が入っていないかをよく確認してみてください。 一例 >|html| <img src="http://ほげほげ/ふがふが"> ←httpで通信するように書いてある <img src="/ほげほげ/ふがふが"> ←プロトコルの指定が無いのでhtml本体に従う。 ||<

appfbさんのコメント
コメントありがとうございます。 また、環境情報の後出しですみません。 テストしているドメイン上には、上記コードのみを記述したindex.phpファイル1つしかありません。 したがって、邪魔するようなコードはないはずです。 ie10のF12で起動する開発者ツールでは、なんかメッセージが出ています。 先ほどコメントしたように共有SSLドメインを設定しており、かつ、プロトコル指定をしている個所は一か所も無いのにもかかわらず、『HTTPS セキュリティが http://www.ほげほげ.com/ によって危害を受けています』と警告が出ています。 その後に、『HTTPS セキュリティが http://connect.facebook.net/en_US/all.js によって危害を受けています』と警告が出たのち『操作は中断されました』との警告。 >|html| > <img src="/ほげほげ/ふがふが"> ←プロトコルの指定が無いのでhtml本体に従う ||< ということは、iframe 内がSSL通信を行っていると、画像もSSL通信を行うという認識でよろしいでしょうか? それだと辻褄が合います。 セキュア設定を行っているにもかかわらず、『HTTPS セキュリティが http://www.ほげほげ.com/ によって危害を受けています』というメッセージは、一つの可能性をおっしゃられていた通り何らかの事情でSSL通信がfacebook側から弾かれているかもしれません。 やはり独自SSLを検討したほうがいいかもしれません。

うぃんどさんのコメント
SSL通信がはじかれているのではなく、非SSL通信が混じっているためにはじかれているので、独自か共用かは関係ないですよ。 (1)まずは『[]http://www.ほげほげ.com/[] によって危害を受けています』の通知に着目します。 []http://www.ほげほげ.com/ふがふが[] ではないということから、 index.htmlファイルと明示せず、 ドメイン名だけで呼び出しているということになりますが…、合ってますか? 合っていれば、 本体のindex.htmlを呼び出す時点ですでにhttpsではないということになりますので、[]http://www.ほげほげ.com/[]と設定した箇所を見直して、 []https://www.ほげほげ.com/[]に直しましょう。 (2)次に、『HTTPS セキュリティが []http://connect.facebook.net/en_US/all.js[] によって危害を受けています』に着目します。 プログラムコードを見ると相対指定になっていますので、 前述(1)の修正が完了すれば、こちらも自動的に直るはずです。

appfbさんのコメント
何度もありがとうございます。 今回の質問とご指導は、facebookのアプリ基本設定のことでよろしいでしょうか? (1) > ドメイン名だけで呼び出しているということになりますが…、合ってますか? 合っています。 現在、キャンバス型webアプリでのみテストしていますが、キャンバス型はファイル名まで指定するとエラーが出ますので、ドメイン名だけで呼び出すfacebook側の仕様となっています。 > https://www.ほげほげ.com/に直しましょう。 これもきちんと設定されています。 https 以外のドメインを指定すると、これもfacebook設定画面でエラーが出ます。 Xサーバーの共有SSLドメインは、https://ほげほげ-com.ssl-xserver.jp/ ですが間違いなくこのドメインがセットされています。 もちろん https://www.ほげほげ.com/ もテストしましたが当然403エラーが返ってきました。 (2) > プログラムコードを見ると相対指定になっていますので、 了解しました。 > SSL通信がはじかれているのではなく、非SSL通信が混じっているためにはじかれているので、独自か共用かは関係ないですよ。 今までご指導いただいた回答やコメントにより承知しております。 独自を検討と書いたのは、 > 同じ共有SSLを使っている別サイトがfacebookとトラブルを起こしていない限り どんなに穴が開くほど設定とコードを見直しても、「セキュリティで保護されているコンテンツのみ表示されます。」という警告が出るということは、『トラブルを起こしていない限り』という一つの可能性を取り去りたかったからです。

うぃんどさんのコメント
>可能性を取り去りたかったから 正しく伝わっていたのですね。よかったです。 一つ思いついたので書いておきます。 .htaccessでrewriteとかしてませんか? 合わせて確認してみてください。

appfbさんのコメント
はっ・・・今から確認します!

appfbさんのコメント
やってました・・・ RewriteEngine On ・・・ 散々お騒がせして誠にすみませんm(_ _)m 古いドメインだったのですっかり忘れてました。 穴があったら入りたいです。 これでは独自SSLをとっても迷路にはまったままでした。 無事動作を確認しました。 今回、「セキュリティで保護されているコンテンツのみ表示されます。」に関する質問を重ねた結果、親切な方々から丁寧なご回答を頂きまして、この警告はSSL通信に非SSL通信が混在することによってのみ発せられるということが分かったことは大変な勉強になりました。 他の可能性も疑っていた素人の私としては、解決の的を絞ることができずにいました。 重ね重ねお礼を申します。

うぃんどさんのコメント
>無事動作を確認 よかったです。 では失礼…。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ