![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam, jestem w trakcie tworzenia pierwszej strony która będzie odwiedzana przez większą ilość użytkowników. I tu się trochę obawiam o bezpieczeństwo dlatego wolę zapytać czy mój kod jest wystarczająco bezpieczny.
Na stronie będzie wiele formularzy. Każda zmienna z formularza jest filtrowana w ten sposób:
A do bazy danych dane przesyła się tak:
I tu pytanie czy to jest bezpieczny sposób? Myślałem jeszcze o zamienieniu znaku apostrof i cudzysłowia na encję by przy wyświetleniu zamieniało z powrotem na ten znak. W niektórych przypadkach nie mogę zabronić użytkownikom używania tych znaków ale wiem, że można ich użyć do ataku, więc czy zamiana ' i " na encję sprawi, że kod sql injection się nie wykona? Jeśli tak to: Zauważyłem, że funkcja htmlentities zamienia cudzysłów na encję (w bazie danych jest encja a w przeglądarce widać z powrotem cudzysłów) i to samo ze znakami >< jednak pozostał znak ' czyli apostrof i tu pytanie czy jest funkcja która zrobi to samo z tym znakiem czy muszę zamieniać znak na encję oraz przy wyjściu samodzielnie zamieniać encję na apostrof? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Korzystasz z przestarzałych funkcji mysql_query i pokrewnych. Czyli powinienem przerzucić się na PDO? powinieneś używać przed wyświetleniem danych w dok. HTML, nie przy wrzucaniu danych do bazy. Dlaczego? Kilka razy w internecie widziałem tą uwagę ale nigdy żadnego wyjaśnienia, więc pytam bo chcę wiedzieć gdzie leży różnica. "Czy w necie jest jakis serwis: Kompedium błędnej wiedzy archaicznej?" Tak, jest. Masa darmowych poradników pisana prawdopodobnie przez innych początkujących a ci lepsi nie chcą dzielić się za darmo wiedzą. Napisaliście mi, że źle robię ale naprowadzić na dobrą drogę to nie bardzo. Jedyne co od was się dowiedziałem konkretnego to, że powinienem zamieniać na encję przy wyświetleniu ale dlaczego to już nie, więc de facto nic konkretnego się nie dowiedziłem. Dzięki. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 03:03 |