<?php
echo "Witaj świecie";
?>
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;
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>
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ę. ;)