Autor Zpráva
wordik
Profil *
Dobrý den, je třeba nějakým způsobem ošetřit tyto session proměnné, pokud je budu někde vypisovat?

...
while($login_row = mysql_fetch_array($sql_login_check)){
	session_regenerate_id();
	$_SESSION['logged'] = 1;
	$_SESSION['user_name'] = $login_row['username'];
}
...


a pak například:
echo $_SESSION['user_name'];


nebo zda je potřeba výstup nějak ošetřit nebo se ošetřují jen $_POST apod.? Děkuji předem
Alphard
Profil
$_SESSION nikdo nezmění. Záleží na tom, jak máte ošetřené vkládání username do databáze. Když to při výpisu proženete htmlspecialchars(), tak asi nic nezkazíte.
wordik
Profil *
Alphard:
Všechny řetězce, které jdou skrze databází proženu mysql_real_escape_string() a všechna čísla funkcí intval().
Alphard
Profil
wordik:
Všechny řetězce, které jdou skrze databází proženu mysql_real_escape_string()
Takže při výpisu htmlspecialchars(). Kdyby si někdo zaregistroval jméno např. "wordik</div></div>", tak vám to rozhází stránku.
wordik
Profil *
Alphard:
Dobře, děkuji.
wordik
Profil *
Když o tom tak přemýšlím, nebude stačit ošetřit pouze vstupy formuláře?

Například ve formuláři pro registraci nebo zaslání zapomenutého hesla:
<input type="text" id="user_name" name="user_name" class="field" size="20" maxlength="16" value="',htmlspecialchars($_POST['user_name'], ENT_QUOTES),'">

<input type="text" id="email" name="email" class="field" size="20" maxlength="75" value="',htmlspecialchars($_POST['email'], ENT_QUOTES),'">


Konkrétně u pole prp uživatelské jméno samozřejmě povoluji pouze znaky a-z;A-Z;0-9, ovšem beru to všeobecně, například u textového pole pro napsání zprávy do chatu, nebudu takto uživatele omezovat (pouze příklad).
wordik
Profil *
wordik:
samozřejmě v sql dotazech budu ošetřovat raději stejně, ale jde mi spíše o ty "echa", o kterých jsem mluvil v původním příspěvku.
wordik
Profil *
Můžete mi to někdo odsouhlasit? :-) Já jen abych neměl nějaké bezpečnostní díry v mé aplikaci.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0