Nasıl $ _SESSIONs daha güvenli hale getirebiliriz?

0 Cevap php

Bu oturum kimliği yenilemek için, düşünce en popüler okul rastgele oturum kimliklerini oluşturmak olduğunu görünüyor zaman kullanıcı günlükleri ve onlar sadece ekstra güvenlik için, yapman yaparken periyodik olarak mevcut kullanıcılar için oturum kimliğini yeniden oluşturmak için.

Ben bir alternatif çözüm kullanıyorum, ama ben tecrübeli PHP yanlısı değilim ve ben eksik olabilir göz kamaştırıcı bir güvenlik açığı (veya iki veya daha fazla ...) var endişeliyim.

Eğer aşağıdakilerden bir göz var ve bu tehlikeye nasıl olabilir bana söyleseniz, ben bunu takdir ediyorum.

Komut kullanıcının makinesine bağlı olan bir oturum kimliğini oluşturur ve boyunca aynı kalır. Ben karma geçerli tarih dahil düşünüyordum, ama bizim gece vardiyası işçileri daha sonra gece yarısı dışarı açmış olacaktı. Ben onların yakınmanızı duymak etrafında olurdu değil ;)

Ben IP adresini kullanarak aynı işletim sistemi ve tarayıcı ile iki kullanıcılara ücretsiz WiFi kullanarak, bir kafede oturuyorlar, ama bu bir iç MIS için ise kötüye onu açıyor fark yoktur, bu nedenle her kullanıcının kendi statik IP olacak adresi. Web'den erişilebilir yapmak için daha sonra karar verirseniz ben belada! Ama bu spec parçası değildi :)

// Set the session ID
$session_hash = md5( $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_HOST'] . $_SERVER['REMOTE_ADDR'] );
// Compare against session ID received from user
if ( session_id() != $session_hash )
{
    session_destroy();
    unset ( $_SESSION );
    session_id( $session_hash );
    session_start();
}
else
{
    // Attempt to load user details from database if $_SESSION['user_ID'] is set.
}

Tüm yapıcı yorumlarınızı bekliyoruz ve takdir!

0 Cevap