私は完全にajax駆動型のアプリケーションに取り組んでおり、すべてのリクエストは基本的にメインコントローラーに相当するものを通過します。メインコントローラーは、基本的には次のようになります。
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
fetch($page);
}
これは一般的に、クロスサイトリクエストフォージェリから保護するのに十分ですか?
ページ全体がリクエストごとに更新されない場合、ローテーショントークンを使用するのはかなり不便です。
リクエストごとにグローバルjavascript変数として一意のトークンを渡して更新できると思いますが、どういうわけかそれは不器用で、とにかく本質的に安全ではないようです。
編集-おそらく、ユーザーのUUIDのような静的トークンは、何もないよりも優れているでしょうか?
編集#2-ルークが指摘したように、これは髪を分割する質問かもしれません。私は両方の方法で憶測を読み、古いバージョンのフラッシュがこの種のシェナニガンに悪用可能であるという遠いささやきを聞きました。私はそれについて何も知らないので、これがどのようにCSRFリスクであるかを説明できる人には賞金をかけています。それ以外の場合は、Artefactoに渡します。ありがとう。