Bu PHP oturum açma işlevi güvenli mi?

3 Cevap php

Şu anda benim giriş sistemi benim işlevleri komut (PHP) yeniden yazıyorum. Aşağıdaki kod güvenli ve kullanıcı oturum olup olmadığını denetlemek için "iyi" bir yolu var mı?

    function loggedin()
    {
        $ID = ($_SESSION['ID']);
        $sql = "SELECT `online` FROM `users` WHERE `ID` = '$ID'";
        $result=mysql_query($sql);
        $count=mysql_num_rows($result);
        $row = mysql_fetch_array( $result );
        if ( $count== 1)
        {
            if ($_SESSION['ID'] && $_SESSION['session_id'])

            {
                if ( $row['online']== 1)
                    return 1;
            }
        }
        else
        {
            return 0;

        }
    }

3 Cevap

Bu kesinlikle ekleyerek değer

session_regenerate_id(true);

önlemek için session fixation.

Yani bu

if ( $row['online']== 1)
    return 1;

Bu olur:

if ( $row['online']== 1)
{
    session_regenerate_id(true);
    return 1;
}

Diğer cevaplara ek olarak, oturum ilk varsa kontrol emin olun.

function loggedin()
{
    if(!isset($_SESSION['ID'])) return 0;
    $ID = ($_SESSION['ID']);
    ..