私はAJAXを使用するフォームを持っています。これは、一度に多くのユーザー、認証された匿名ユーザーも使用します。
ユーザー(特に匿名)間でのデータ漏洩を防ぐためにどのような予防策を講じる必要がありますか?
No_cacheオプションを使用して、ルートレベルのキャッシュを無効にしました。それで十分ですか、それとも\Drupal\Core\Form\FormStateInterface::disableCache()
または他の何かを使用する必要がありますか?
ユーザー(特に匿名)間でのデータ漏洩を防ぐためにどのような予防策を講じる必要がありますか?
特別なことをする必要はありません。レンダーキャッシュも無効にしないでください。
フォームデータはキャッシュされるだけafter最初のajaxリクエストであり、それは特定のフォームビルドID(一意です)のみです。つまり、フォームが生成されてページキャッシュにキャッシュされる間、すべてのユーザーのすべてのリクエストに対する最初のリクエストによってフォームが最初から再構築されます。
8.x(8.0より前)のある時点でコアにバグがあり、UUIDを含む新しいユーザーエンティティが登録フォームにキャッシュされ、他のユーザーがUUIDの競合を抱えていたため、6時間ごとに1人のユーザーしか登録できませんでした。フォームキャッシュの変更により、これが修正されました。