NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Po přihlášení přesměrovat na požadovanou stránku

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Martin Zdejší:13.3.2019 19:49

Ahoj,

nevím jak přesně nazvat toto téma, možná bude trošku matoucí. Pokud uživatel přistoupí na stránku prispevky.php, na kterou může až po přihlášení, přesměruje ho to na přihlašovácí stránku.
Chtěl bych se tedy zeptat. Je nějaký způsob jak uživatele přesměrovat na stránku, na kterou chtěl přistoupit před přihlášením ? Měl jsem nápad něco jako pomocí javascriptu hoposunout o stránku zpět v historii, nevím ale, jestli je to dobrý nápad.

Díky

 
Odpovědět
13.3.2019 19:49
Avatar
Odpovídá na Martin Zdejší
Uživatel sítě :13.3.2019 20:10

Ahoj,

můžeš to zkusit provést například přes url parametr.

přesměrování ze stránky, kde je nutné přihlášení provedeš například:

header('Location: login.php?return=prispevky');

a po přihlášení:

isset($_GET['return']){
    header('Location: ' . $_GET['return'] . '.php');
}

Pochopitelně se jedná o hrubý nástřel, je nutné provést kontrolu existence stránky, ochrany vstupních parametrů od uživatele, apod.. :)

Nahoru Odpovědět
13.3.2019 20:10
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Uživatel sítě
Martin Zdejší:14.3.2019 17:01

Díky moc, takhle mě to nenapadlo, ikdyž je to docela jednoduchý systém.

Měl bych ještě dodatečnou otázku k té ochraně. Jak mám tohle chápat, popřípadě jak to ošetřit..?

 
Nahoru Odpovědět
14.3.2019 17:01
Avatar
Odpovídá na Martin Zdejší
Uživatel sítě :14.3.2019 17:30

Tak za všech okolností je vždy nutné ošetřovat vstupy od uživatele, například převedením entit na jejich bezpečné verze apod..
http://php.net/…ialchars.php#…

Zde je určitě hlavní i kontrolovat, zda návratová stránka skutečně existuje například funkcí file_exists, apod..

Nahoru Odpovědět
14.3.2019 17:30
Chybami se člověk učí, běžte se učit jinam!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.3.2019 8:30

Pokud uzivatel muze do programu posilat text, je nutne zabranit aby text narusoval chod programu nebo html stranku. Pr. Uzivatel zada v prohlizeci adresu:

https://server.cz/?a=NECO</div>
<?php
$a = isset($_GET['a']) ? $_GET['a'] : '';
echo '<div style="border:2px solid #f00;">text'.$a.'text</div>';
?>

Co se podle tebe ted zobrazi? Rozbije ti to html kod.
<div style="border:2px solid #f00;">text'NE­COtext</div> - normal
<div style="border:2px solid #f00;">textNE­CO</div>text</div> - podstrceny odkaz (nebo vznikly nejakou chybou)

Pr2

https://server.cz/?nick=' OR '1'='1&psw=
<?php
$nick = isset($_GET['nick']) ? $_GET['nick'] : '';
$psw = isset($_GET['psw ']) ? $_GET['psw '] : '';
$sql->connect();
$query = "SELECT * FROM users WHERE nick='$a' AND psw='$psw'";
$rows = $sql->query($query);
foreach($rows as $row)
foreach($row as $value)
{echo $value;}
?>

Co se myslis, ze se ted stane? Uzivatel ziska uplny vypis z tabulky uzivatele. Snadne se pak nalogovat na admina programu, ze? Nebo si precist hesla, pokud je autor ani nesifruje. A nebo mit zasifrovana hesla a moci je nechat lustit programem.
Normalne by mel ziskat data jen o sobe, treba.

 
Nahoru Odpovědět
15.3.2019 8:30
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.3.2019 8:42

Jo, a u stranky, nejen, ze kontrolovat, zda existuje, ale zda to neni stranka v jine slozce. Pripadne tem ostatnim slozkam nastavit takova prava, aby se do nich php nedostalo. Zas takovy priklad...

data/hesla_uzivatelu.php
stranky/hlavni
foto/nahledy/123.jpg - fotka s erotickym charakterem
foto/velike/123.jpg

https://server.cz/?a=../../hesla_uzivatelu.php
<?php
$a = isset($_GET['a']) ? $_GET['a'] : '';
echo file_get_contents('foto/nahledy/'.$a);
?>

V tuto chvili se dostanu do souboru hesla uzivatelu (pokud bych vedel, ze tam neco takoveho je nebo si tipnul nazev souboru). Soubor existuje, takze file_exists, i kdybych ho tam mel, tak si nevsimne zadny problem.

Mas treba seznamku, kde neprihlasenemu uzivateli zobrazujes nahledy erotickych fotek jineho uzivatele. Kdyz bude chtit si ji rozkliknout, tak po nem bude chtit prihlaseni. Pripadne treba jeste spesl heslo, ktere by mu sdelila v pripade zajmu uzivatelka.
Z www prohlizece zjistit adresu fotky (protoze ji name autor zabezpecenou)
foto/nahledy/123­.jpg
Tipnes si, ze by slozka pro velke obrazky mozhla mit stejne id a nazev
foto/velka/123.jpg
A autor nema slozku zabezpecenou pred php a verejne dostupnou a soubor zamykat heslem nejde. Jde ale komprimovat a sifrovat heslem. Ale i na to jsou programy, ktere se snazi heslo odhalit. Ale rekneme, ze to zkratka nema nijak zavezpecene. Zadanim adresy ziskam velkou detailni fotku uzivatelky.
A zacnu ji vydirat.

Treba by to mohly byt tve stranky a schovas si tam nekde fotky sve pritelkyne. A ja si nejak z html kodu vystouram, jake asi pouzivas jmena adresaru, fotek a zkusim naslepo tipnout podle jmena tve pritelkyne, kde by mohl byt nejaky soubor. Asi nebudes moc rad, kdybys to zjistil :)

 
Nahoru Odpovědět
15.3.2019 8:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.