Başlangıç kılavuzunda yer alabilecek öneriler var ama düzeltmelerde yapsam iyi olacak.


    E-post güvenliği önemli, veritabanı motoru destekliyorsa AES iler şifrelenip çözülmeli, md5 ile zayıf ve geri dönüşümsüz olarak e-posta saklamak pek mantıklı değil çünkü md5 ile çözemediğin mail adresine mail yollayamazsın. Hizmet koşullarını güncellediğin zaman bunu kullanıcılara en etiki biçimde bildireceksen çözülebilir bir algritma kullanılmalıdır.



    Kullanıcı ismi base64 ile şifrelenmesine gerek yok, eğer önemli işler yapılıyorsa id üzerinden yapılmalı. Yani başkası kullanıcı adını bilse bile yapabileceği şeyler kısıtlı olmalı.



    Brute Force ile login veya benzeri işlemler için 3 rakamı az geldi bana. Şifreni hatırlamayabilirsin, denersin, işletim sistemi klavyeni etkileyen bir şey yapmıştır, bilmeden denersin, başka cihazda alışkın olmadığın için denersin. UX için hiç hoş bir adım olmaz.

    Kullanıcının tarayıcı ve geolocation bilgisine bakarak biraz daha esnek davranılabilir.



    Cloudflare kesin çözüm değil, özellikle ücretsiz planına sadece demo gözüyle bakılmalı. Sadece basit saldırıları karşılıyor, ücretli planlar esas saldırılar için koruma sağlar. Ancak yinede büyük projelerde başka firmalardan da destek alınmalı.



    Framework yerine saf dili kullanmakta fayda var, eğer ekip çalışması ve belirli bir zorunluluk yoksa framework'ler sağladıkları kolaylıklarla beraber açıklarıda getirir. Ne kadar az harici kod o kadar az açık demek.



    SSL istemci ve sunucu arasındaki bağlantıyı şifreler, 3. kişiler kolaylıkla bu iletişime dahil olamaz ama yinede %50 oranı verebilirim. İstemci veya sunucu temiz değilse mutlaka birileri amacına ulaşır.



    PDO %100 SQL injection'dan kurtarmaz, illuminate gibi harici kütüphanelere göz atmakta fayda var.



    require yerine require_once daha sağlıklı ama çoklu kullanımlarda, örneğin 20 kere require işlemi yerine autoload kullanılmalı.