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.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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..
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..?
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..
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'NECOtext</div> -
normal
<div style="border:2px solid #f00;">textNECO</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.
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
Zobrazeno 6 zpráv z 6.