0

サイトでソーシャル共有ウィジェット (Facebook Like、Twitter Tweet など) を使用したいのですが、サードパーティのスクリプト タグを直接埋め込みたくありません。信頼できるコードまたはサンドボックス化されたコードのみをサイトで実行したいと考えています。

  • Google Cajaは機能する可能性がありますが、Caja に対応するためにサードパーティ コードを特別に作成する必要があります。
  • コンテンツ セキュリティ ポリシーは機能する可能性がありますが、特に IE では (10 であっても)まばらに実装されており、存在するかどうかを検出する良い方法はありません。

これに対する解決策はありますか?それとも、ボタンをまったく表示しないか、信頼できない JavaScript を実行するかのどちらかを選択する必要がありますか?

追加のコンテキスト: サイト全体を HTTPS で実行したいのですが、共有ボタンも必要です。安全な Cookie を Facebook や Twitter に漏洩する可能性はありません。

4

2 に答える 2

0

安全なCookieをFacebookやTwitterに漏らしたくない。

ブラウザがtwitter/facebok JSを取得すると、WebサイトのCookieが渡されるのではないかと心配している場合は、渡されません。ただし、いくつかのjsを含めると、document.cookiesによってCookieにアクセスできます。さらに、書き直しは実際にはオプションではなく、手間がかかりすぎると思います。それが変更された場合はどうなりますか?

セキュリティとユーザビリティは常に戦いでした。機密情報が掲載されているサイトには、これらのボタンを含めないことをお勧めします。そして、悪いことが起こらないように祈ってください:)さらに、ユーザーデータや機密データを変更する前に再認証を要求するなどの保護メカニズムを追加することもできます。

于 2012-12-05T07:32:14.557 に答える
0

サードパーティの JavaScript を信用できない場合 (私はあなたを責めませんが、それは恐ろしいことです!)、最善の策はiframe、これらのソーシャル ネットワークが提供する実装を使用することです。たとえば、次のフレームをサイトに追加することで、Facebook の「いいね」ボタンを含めることができます。

<iframe src="//www.facebook.com/plugins/like.php?href=[PAGE_URL_GOES_HERE]&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>

https://dev.twitter.com/docs/tweet-button#using-an-iframeには、Twitter の同様の設定に関する詳細があります。

コードを にカプセル化するiframeと、フレームのコンテンツに対してある程度の保護が得られます。これは、親に到達してデータを取得したり、コードを操作したりすることができないためです。

iframe(巧妙な名前の)sandbox属性を介してサンドボックス化することにより、保護レベルを上げることができます。例えば:

<iframe sandbox="allow-script allow-same-origin" src="..."></iframe>

ページを にロードしiframe、オリジンにアクセスしてスクリプトを実行できるようにします (ただし、親のオリジンにはアクセスしません)。ただし、最上位のドキュメントをナビゲートしたり、プラグインをロードしたりすることはできません。サンドボックスは、Chrome、Safari、Firefox 18+、および IE9 (おそらく 10.) でサポートされています。

于 2012-12-05T11:11:42.537 に答える