ウェブインデント機能はブラウザのXFrameOptionsサポートによりCSRF対策が可能です(別ウィンドウで開く等)
サイトに埋め込みそのオリジンから押せるイイネボタンについてはどのような対策が必要かについてお聞きしたいです。
恐らくログイン時のセッションについてはサーバー側で管理しているとは思いますが、いいねボタンを押した際の挙動としては特に関係ないとは思います・・
SNS側から見て、利用者が意図しないコンテンツへのイイネは望んでいないはずです、もし信頼のおける素敵なサイトに脆弱性が有った場合、Submitボタン等に悪質なコンテンツへのイイネボタンを埋め込む事が出来れば、社会的に信頼のおける人間からの支援を受ける事が可能です。
その対策の一環としてボタン設置にはSNS側のデベロッパーアカウントが必要であり開発者KEYがイイネボタンの設置に不可欠となってはいると思いますが、近年では有名なSNSボタンを設置しているサイトは多いため、問い合わせページやサイトフッター等を見渡せば、他のページから開発者KEYを取得する事が可能な環境が多数です。
こちらの対策を取り入れるにはどのようなものが考えられますでしょうか?
追記:
質問文の解決したい内容が明確ではなかった為補足させていただきます。
解決したい目標としましてはSNSのサービス不正利用の防止です。これはSNS機能をサイト内に埋め込む利用者側の視点とゆうよりはSNS運営側から見た対策になります。
・サイト閲覧者の意図しないイイネクリック防止
・CSRF攻撃によるブラウザ操作を必要としないイイネクリックの防止
考えた対策方法としては以下のようなものになります。
・イイネボタンのCSSレイアウトに問題が無いか検討する
・トークンの埋め込みによるサイト側からのリクエスト確認
・サイト埋め込みトークン名のランダム生成
・リクエストにユーザのマウス操作履歴を格納する
・CSSレイアウトの検討についてはJavascriptによりイイネボタンのOpacityチェックや他DOM要素の重なりを検討し、正しい配置がされているかチェックするとゆうものです
・トークンの埋め込みについてはSNSサーバー側で正常に生成されたイイネボタンかチェックをするとゆう意味が有ります
・トークン名のランダム生成については、hidden要素のnameをランダムに生成する事でハッキングを試みる際に必要tokenを把握させないとゆうものです。サーバー側で不定期にトークン埋め込み用input要素のname属性を変更する事でトークンの不正取得を防ぎます。
・マウス操作履歴については、MouceOverメソッド等によりコンテンツをマウスにより実際にクリックしたのか検証し、リクエストに一緒に送信する事で人間による動作を確認するものです。
1点目と2点目では、ハッカーはブラウザ操作に縛られることなくリクエスト処理の偽造によりどうとでも出来てしまう為、3点目のトークンのランダム生成と,4点目の利用者の入力動作に条件を与える事で対策を考えていました。
4点目の条件ではサイト表示端末によっては適応が難しいといった課題が有ります。また、一度検討したマウス操作履歴をデータベースに格納し全く同じものが無いか確認する必要が有る為、管理コストとデータベース検索の時間があまり実用的ではないとゆう課題も有ります。
あと、私はSNSのイイネボタンの仕組みを把握しているわけではないので、そもそもこれら対策の目の付け所自体が間違っているかもしれません、その際は目の付け所が違うと一括いただけたらと思います。
ご教授の程よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー