Cross-Site Request Forgery (CSRF) Algılama
Önem derecesiYüksek
enRead this article in EnglishCSRF açığı olduğu zaman saldırgan başka bir sunucu üzerinden sayfaya bilgi gönderebilir ve sisteminiz üzerinden istenmeyen e-postaların çıkmasına neden olabilir. Bu açığın tespit edildiği sunucular çoğunluka spam ileti yollamak ya da oltalama e-postası göndermek için kurban olarak kullanılmaktadır.
Çözüm
Bu sorunu çözmek için form iletim sayfalarına, varlığını kontrol edebileceğiniz bir token eklemeniz gerekmektedir. Bu token X-CSRF-TOKEN isminde olmalıdır. İletişim formu üzerinden post edilen iletilerin içerisinde token yoksa bu e-postalar göz ardı edilmelidir. Ayrıca formu gönderen scripte gelen GET ve POST istekleri localhost ile sınırlandırılmalıdır.
Tavsiyeler
- Site içerisindeki formlara veri iletirken JWT kullanabilirsiniz. Ref: https://jwt.io/
- Formlara sadece localhost’un erişmesine izin verin:
if(
isset($_SERVER['REMOTE_ADDR']) AND ($_SERVER['REMOTE_ADDR']!==$_SERVER['SERVER_ADDR']))
{
header("HTTP/1.1 401 Unauthorized");
exit();
}
- .htaccess kullanın
<Limit GET POST>
order deny,allow
deny from all
allow from 127.0.0.1
</Limit>