CSRF token sunucu tarafından oluşturulduktan sonra istemci tarafına indirilen ve sonraki bütün ağ trafiğinde transfer edilen bir bilgi oluyor. Tahmin edilmesi zor (strongly unpredictable).
Token istemci tarafına indirilmeden önce sunucu tarafında bir session içinde tutuluyor ve her request geldiğinde session içindekiyle aynı mı diye bakılıyor. Burda dikkat etmek gereken session bilgisine bakıldığına göre session id bilgisinin de CSRF token ile gelmesi gerekir ki doğru kontrol edilsin.
Aslında bence iki farklı session bilgisi oluşturmuşuz gibi bir yaklaşım oluyor. Session zaten kullandığımız sunucu tarafından oluşturuluyor, biz buna ek olarak manual veya otomatik bir kütüphaneyle kendi session token bilgimizi de oluşturup karşılıklı kontrol etmiş oluyoruz.
CSRF alınır başka bir bilgisayardan gönderilirse, haliyle session bilgisinin de tutarlı olması gerekir.
Yani bir session bilgisinin yanı sıra bir de CSRF bilgisi ekleyerek elimizdeki veri iletişiminin daha güvenli olmasını sağlamaya çalışmış oluyoruz.