Bir giriş sistemi yaratmanın en iyi yaklaşım nedir?

3 Cevap php

Ben her zaman oluşturduğunuz giriş sistemleri saldırılara ya karşı savunmasız olduğunu merak ediyorum.

Gibi diğer birçok programcılar ben de giriş durumunu öğrenmek için özel bir belirteç belirteç tutun oturumları kullanın. Kullanıcı adı ve hatta bazen kaydedilmiş durumu tutun Çerezler.

Ben isimli merak ediyorum ne, bu doğru yolu var mı? Bu daha iyi herhangi bir yaklaşımın var mı?

3 Cevap

Sen oturumda kendi özel kontrolleri oluşturabilirsiniz. Aynı kullanıcı ajan tarafından ve aynı IP adresinden oluşturulan emin olun.

Bunun dışında, oturumları oldukça katı.

Giriş bölümünde, senin gibi bir şey olacaktır:

$_SESSION['_user_agent'] = $_SERVER['HTTP_USER_AGENT'];
$_SESSION['_remote_addr'] = $_SERVER['REMOTE_ADDR'];

ve o zaman her isteği bir kontrol yapabilirsiniz:

function sessionIsOK ()
{
    return ($_SESSION['_user_agent'] == $_SERVER['HTTP_USER_AGENT'] &&
        $_SESSION['_remote_addr'] == $_SERVER['REMOTE_ADDR']);
}

Ben size yerine https http kullanarak konum https:if kullanarak ister konularda düşünmek, daha sonra sistemin birçok açıkları vardır: örn oynatma, ve man-in-the-middle/relay.

Ortak PHP giriş sistemlerine alternatif HTTP kimlik doğrulaması. Bu oturumlar / çerezlerin kullanımını gerektirmez. Özellikle HTTP Digest kimlik şifresiz

daha güvenli giriş. (En çok paylaşılan barındırma sağlayıcıları SSL sağlamaktır. Ve en FLOSS'un webapps, eğer nadiren kurmak değil.)

Ancak, ağır DHTML / AJAX kullanımı ile kontrol altına alınabilir bazı kullanılabilirlik dezavantajları vardır. Ve o sunucu performansını biraz akıtır. Ve en önemlisi: en çok programcılar için hakkını uygulamak çok zor.

Basit bir PHP giriş sistemi yeterli değilse, uygulamanın türüne bağlıdır.