Przeglądasz posty otagowane jako: "php Archives - LabIT"
wrz
27

header() to nie zabezpieczenie

autor: p____h  //  ::medium::, Security  //  komentarzy 5

Dzisiaj pod lupę postanowiłem zaciągnąć bardzo często używaną funkcję header(). Właściwie nie tyle samą funkcję,  co jej złe wykorzystanie. Oto jak wygląda kod, z którym zetknąłem się już kilka razy:

<?
if( !isset( $_SESSION['session']["authCode"] ) )
	header("Location: login.php");
echo "WTF is wrong with my awesome code?!";
?>

A poniżej słów kilka dlaczego jest on zły.

Czytaj dalej »»

lip
19

Zabugowane błędy

autor: p____h  //  ::easy::, Security  //  brak komentarzy

Dzisiaj trochę o PHP – z naciskiem na argumenty dlaczego error_reporting() jest dobry i powinno się z niego korzystać. Niestety, bardzo rzadko spotykam się z kodami, w których figuruje banalna linijka: error_reporting(0);
A szkoda – błędy wypluwane przez interpreter powinien widzieć tylko administrator (serwer produkcyjny?), a komunikację z użytkownikiem powinno zapewniać napisane GUI.

Czytaj dalej »»

sty
8

Diabeł tkwi w szczegółach precyzji

autor: p____h  //  ::easy::, Security  //  brak komentarzy

Pamięć komputera jest skończona. Zastanówmy się przez chwilę, co może wydarzyć się, gdy będziemy chcieli przechować w niej liczby, o nieskończonej ilości cyfr – na przykład ułamki. Zajmijmy się liczbami zmiennoprzecinkowymi, zapisanymi w notacji naukowej. W reprezentacji taką liczbę dzieli się na dwie części: significand (mantysa) oraz exponent (mówi, o ile miejsc należy przesunąć przecinek). Przykładowo dla pary (significand/exponent) 1.246/2 otrzymamy liczbę 124.6 (1.246e2 w notacji naukowej).

Oczywiście nie można zapisać w pamięci liczby zmiennoprzecinkowej z bezbłędną dokładnością. Stosuje się pewne przybliżenia, które mogą wpłynąć na wynik. Co jednak stanie się, gdy dla danej liczby algorytm aproksymacji niewypali?
Czytaj dalej »»