Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 1.993 pregleda

Najnovija ↓

PHP Pomoc oko zabrane pristupa admin panelu. 13.06.2019. u 13:47 · pre 90 meseci #1
Pozdrav, imam problem sa PHP-om, zelim zabraniti pristup Admin Panelu korisnicima koji imaju role="user". Nije mi jasno zasto ovo ne radi i Admin Panelu imaju pristup svi korisnici.

Ima li neko ideju kako ovo mogu popraviti?

Code:

include("../db.php");
session_start();

if ((!isset($_SESSION['a']) || empty($_SESSION['a']))) {

    $sql = "SELECT role FROM users WHERE username='" . $_SESSION['a'] . "'";
    $res = mysqli_query($con, $sql);
    $row = mysqli_fetch_object($res);
    $role = $row['role'];

    if ($role != "admin") {
        header("location: login.php");
    }
}
Re: PHP Pomoc oko zabrane pristupa admin panelu. 13.06.2019. u 14:03 · pre 90 meseci #3
Kod je skroz pogrešan, ali i logika je skroz pomaknuta...
Nikad ne zabranjuješ pristup nekome tko ima neku rolu, to je odmah potencijalna sigurnosna rupa, uvijek gledaš u pogledu da je pristup ZABRANJEN svima, a dozvoliš ga samo korisnicima sa određenom rolom/permissionom.
Re: PHP Pomoc oko zabrane pristupa admin panelu. 13.06.2019. u 14:04 · pre 90 meseci #4
Citat:
djoka_l:
Ulaziš u if ako nije setovana varijabla "a", pa onda tu istu varijablu koristiš kao username.
Šta očekuješ da dobiješ?


Hvala, sad sam video sta sam uradio. Popravio sam gresku.

Code:

if ((!isset($_SESSION['a']) || empty($_SESSION['a']))) {
    header("location: login.php");
} else {
    $sql = "SELECT role FROM users WHERE username='" . $_SESSION['a'] . "'";
    $res = mysqli_query($con, $sql);
    $row = mysqli_fetch_assoc($res);
    $role = $row['role'];

    if ($role != "admin") {
        header("location: login.php");
    }
}
Re: PHP Pomoc oko zabrane pristupa admin panelu. 13.06.2019. u 14:06 · pre 90 meseci #5
Citat:
gost12:
Kod je skroz pogrešan, ali i logika je skroz pomaknuta...
Nikad ne zabranjuješ pristup nekome tko ima neku rolu, to je odmah potencijalna sigurnosna rupa, uvijek gledaš u pogledu da je pristup ZABRANJEN svima, a dozvoliš ga samo korisnicima sa određenom rolom/permissionom.


Pa ja ovde i pokusam dozvoliti pristup samo korisnicima koji imaju role='Admin'
Re: PHP Pomoc oko zabrane pristupa admin panelu. 13.06.2019. u 15:17 · pre 90 meseci #6
Stavljaj `session_start()` odma' u prvu liniju ispod `<?php` taga, uštedićeš sebi živce jednom.
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: PHP Pomoc oko zabrane pristupa admin panelu. 14.06.2019. u 08:24 · pre 90 meseci #7
Citat:
Aleksandar095:
Citat:
gost12:
Kod je skroz pogrešan, ali i logika je skroz pomaknuta...
Nikad ne zabranjuješ pristup nekome tko ima neku rolu, to je odmah potencijalna sigurnosna rupa, uvijek gledaš u pogledu da je pristup ZABRANJEN svima, a dozvoliš ga samo korisnicima sa određenom rolom/permissionom.


Pa ja ovde i pokusam dozvoliti pristup samo korisnicima koji imaju role='Admin'


Ono što ti je preporučeno je da stviš nešto kao

Code:

if ($role == "admin") {
    // prikazi sadrzaj
    } else {
        header("location: login.php");
    }



Zašto je to bolje, mislim da je očigledno.


Preporučio bih da kod koji učitava privilegije korisnika bude mnogo ranije, u kodu koji se uvek izvršava i da ti na strani gde treba da proveriš privilegije to već bude pripremljeno tako da samo proveriš privilegije. Ovako kako si krenuo, moraćeš na svakoj strani gde treba da proveravaš privilegije da stavljaš i kod koji učitava privilegije iz baze.

Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme