Projekt mysql_query
funkcja jest taka, że musisz uważać, aby uciec przed każdym bitem danych, który do niej wstrzykujesz, a jeśli pominiesz choćby jeden, cała aplikacja może zostać zniszczona przez automatyczne narzędzie do wykorzystywania luk w zabezpieczeniach SQL
.
Oba mysqli
i wsparcie PDO, które są wymagane aby upewnić się, że Twoje zapytania są bezpieczne przed błędami iniekcji SQL. Wywołanie mysql_real_escape_string
na wszystkim jest nie tylko żmudne, ale podatne na błędy i właśnie tam pojawiają się problemy.
mysql
funkcje są produktem bardzo wczesnych dni PHP i są znacznie bardziej ograniczone niż nowe funkcje zorientowane obiektowo oferowane przez oba mysqli
jako opcja lub PDO według projektu.
Istnieje wiele bardzo dobrych powodów, aby użyć jednego z tych dwóch nowych interfejsów, ale najważniejszym jest to, że mysql_query
funkcja jest po prostu zbyt niebezpieczna do użycia w kodzie produkcyjnym. Dzięki niemu zawsze będziesz o jeden błąd z dala od bardzo poważnych problemów.
Jest powód, dla którego wciąż pojawiają się rozprute bazy danych pełne haseł i numerów kart kredytowych. Posiadanie oczywistego punktu wstrzykiwania SQL sprawia, że prawie zbyt łatwo jest całkowicie przejąć witrynę.