Szukaj na tym blogu

Postaram się przekazać swoje doświadczenia z PHP, oraz innych dziwnych rzeczach, typu MySQL, DB2. Czyli to co umiem. Blogoczytelników o słabych nerwach proszę o nieczytanie tego blogu. Dlaczego? Jeszcze nie wiem. W razie pytań z dziedziny PHP proszę pytać, jest cień możliwości że akurat to wiem. ;)

wtorek, 30 marca 2010

Pierwszy tekst

Jak domyślam się iż

<?php
echo "Witaj świecie";
?>

każdy zna. Jeżeli nie, ten blog nie jest dla niego.
Zawsze chciałem zadać zadanie, żeby tę jedną linie napisać tak, żeby maksymalnie rozbudować kod.

Wiem, szaleństwo. Niestety jak patrze w różne kody czasem mam wrażenie że tę tendencje ma większość programistów.  Może dlatego postanowiłem wziąć brzytwę Ockhama i wycinać co jest zbędne i niepotrzebne.

Często popełnianą herezją jest

$zmienna = $_POST['zmienna'];
echo $zmienna;

jak by nie można od razu

echo $_POST['zmienna'];

Obie metody są niebezpieczne, zawsze znajdzie się jakiś hakier i wyśle postem:

<div style="position: absolute; background-color: red; color: white; border: 1px black solid;">
shakwał tą strone<br>
pytek frytek
</div>

Po pierwsze zcrackował, po drugie drugie takich spławia się punkcją

echo htmlentities($_POST['zmienna']);

Amen.

Nie jest to eleganckie rozwiązanie, ale zapobiega wrzucaniom jakiś tagów, złośliwych JS, oraz innego dziadostwa.
Istotą rzeczy jest, żeby nie wierzyć poprawności danych przychodzących na serwer. Zawsze znajdzie się jakiś gieniuś, albo inna tragedia i będzie próbowało przemycić skażone dane, albo "świadomy użytkownik" dorwał się do komputera.

Oczywiście przykłady były banalne, w rzeczywistości były bardziej zawiłe, ale szkielet był mniej więcej taki jak w tych prościutkich przykładach. Nie echo z post, tylko z bazy, do której wrzucił inny skrypt nie sprawdzając kontentu.

To na tyle w dziedzinie mądrzenia się. Jak spodoba się, to będę pisał dalej, jeżeli nie, to zobaczę. ;)