REST API 用の HTML/JS のみでクライアントを作成し、CSRF を防ぐことは可能ですか?
1 に答える
それが可能だ。
APIは通常、他のWebサイトからアクセスすることを目的としているため、CSRF防止は通常、APIではなく単純なWebサイトに対して行われます。この種の攻撃を防ぐための最も一般的な方法である隠しクラムとトークンは、消耗品APIでは正しく機能しません。
おそらく必要なのは、優れたメイン認証メカニズムです。CSRFに対して脆弱なWebアプリケーションの主な弱点の1つは、Cookieです。APIがそれらを必要としない場合は、別の認証メカニズム(OAuthやHTTPダイジェストなど)を使用することが答えになる可能性があるため、外部ユーザーは引き続きAPIを安全に使用できます(厄介なクラム検証なしで)。
HTTP AuthBasicとOAuth2.0はどちらも、JSクライアントアプリケーションで実行できます。ここにOAuth2のデモがあります:https ://gist.github.com/563893
TwitterはメインWebサイト内で独自のパブリックAPIを使用しているため、外部のCSRFをどの程度具体的に防ぐかはわかりませんが、このようなことが可能であるという証拠があります。すべてのリクエストは受信者(ここにあります:https ://api.twitter.com/receiver.html )によって行われ、認証トークンはCookieによってトンネリングされます。おそらく、それらの実装をさらに調査する必要があります。