KRZYSZTOF MATUŁAWEB DEVELOPER
problemy bezpieczeństwa na swojej stronie internetowej

Popraw bezpieczeństwo na swojej stronie internetowej

Brak komentarzy Opublikował Krzysztof czwartek, 25 kwietnia 2019 r.

W tym artykule dowiesz się, jakich technik możesz użyć, aby rozwiązać problemy bezpieczeństwa na swojej stronie internetowej.

1. Sprawdzanie poprawności danych wejściowych

Przede wszystkim sprawdź, czy dane wejściowe zostały przesłane poprawną metodą? To znaczy, dane wejściowe użytkownika powinny zostać przekazane do adresu URL i żądania super globalnego, to to jest problem. Ponieważ haker może sfałszować żądanie innymi metodami. Prosta odpowiedź brzmi: nie używaj superglobalnego żądania, używaj tylko get lub post na podstawie typu żądania.

Jeżeli metodą wprowadzania jest get i oczekujesz tylko numeru z adresu URL jako danych wejściowych użytkownika. Użyj funkcji PHP do sprawdzenia danych wejściowych przesłanych przez użytkownika, w tej konkretnej sytuacji możesz użyć funkcji PHP is_int. Aby sprawdzić, czy wejście jest liczbą całkowitą. W celu sprawdzenia poprawności można użyć funkcji PHP filter_var z tą funkcją, możesz sprawdzić poprawność danych wejściowych, a także oczyścić dane wejściowe. Musisz użyć właściwego filtra na podstawie swoich wymagań. Dostępne filtry można sprawdźić na stronie php.net.

2. XSS Cross-Site Scripting

Cross Site Scripting w skrócie XSS, atakujący wstrzykuje kod javascript do naszej aplikacji, nasza aplikacja działa jak przekierowanie na stronę atakującego lub wysłanie informacji o użytkowniku do strony atakującej.

Zobaczymy, jak możemy pokonać ataki XSS, wprowadzając proste zmiany w naszych aplikacjach za pomocą tych dwóch metod. To jest filtrowanie wejścia i wyjścia

2.1 Filtrowanie danych wejściowych

Przyjmując dane od użytkowników serwisu, powinniśmy je filtrować. Na przykład w systemie komentarzy powinniśmy akceptować tylko wprowadzanie tekstu, a nie znaczniki HTML. Jeśli nie filtrujemy danych wejściowych, użytkownik może przesłać dowolny rodzaj informacji, nawet złośliwy kod. Aby filtrować niechciany kod, możemy użyć tych funkcji PHP, tutaj przedstawiam trzy funkcje PHP i ich zalety.

1. Funkcja PHP strip_tags usuwa znaczniki HTML z danych przesłanych przez użytkownika.

2. filter_var : Bardziej bezpieczny sposób filtrowania danych wejściowych to filter_var z filter_sanitize_string usuwa znaczniki HTML, nawet składnia HTML wprowadzona przez użytkownika jest niepoprawna.

3. Wyrażenia regularne: Jeżeli masz określone wymagania, możesz zbudować wyrażenie regularne, aby filtrować dane wejściowe użytkownika.

2.2 Escaping Output

Escaping Output jest techniką używaną do zapobiegania XSS. Załóżmy, że mamy systemem komentarzy i znajdują się w bazie danych pewne informacje użytkowników bez danych wejściowych. Oznacza to, że te informacje mogą mieć niektóre znaczniki HTML, a nawet niektóre informacje mogą mieć złośliwy kod.

Możemy rozwiązać ten problem poprzez zastosowanie tych funkcji PHP. Funkcja PHP htmlspecialchars koduje znaki specjalne w encjach HTML,jeżeli chcesz przekonwertować znaki cudzysłowiu na encje HTML, użyj go z ent_quotes.

Funkcja PHP htmlentities konwertuje wszystkie encje znaków HTML.

Możesz przekonwertować znaki cudzysłowu również za pomocą ent_quotesBardziej bezpiecznym sposobem jest użycie filter_var z filtrem filter_sanitize_full_special_chars do konwersji wszystkich elementów HTML.

3. Wtrysk SQL

Wtrysk SQL jest najbardziej krytycznym zagrożeniem dla każdej aplikacji korzystającej z bazy danych.

Podaj użytkownikowi minimalne informacje, nie wyświetlaj użytkownikowi zapytań SQL i informacji o debugowaniu. Ponieważ może ujawnić atakującym nazwy tabel i strukturę tabel, dzięki temu atakujący może łatwo wykonać SQL Injection. Zatwierdź dane wejściowe, przejdź do kroku 1. Postępując zgodnie z tym, możesz zminimalizować kilka problemów.

Możemy również wyjść podczas wstawiania rekordów do bazy danych za pomocą funkcji PHP mysqli_real_escape_string.

4. Hashing hasła

Podczas przechowywania haseł użytkowników nie przechowuj ich w postaci zwykłego hasła tekstowego. Większość użytkowników będzie używać tego samego hasła na innych stronach internetowych. Dlatego twoi użytkownicy mogą być w wielkim niebezpieczeństwie. Użyj bezpiecznego algorytmu haszowania haseł, password_hash. Aby wygenerować skrót za pomocą funkcji PHP password_hash.

Użyj poniższego kodu.

password_hash($password, PASSWORD_DEFAULT);

 

5. CSRF Cross-Site Request Forgery

Innym obszarem, w którym należy wdrożyć są tokeny CSRF, jest to fałszowanie żądań krzyżowych, aby zwiększyć bezpieczeństwo przesyłania formularzy. Tokeny CSRF służą do zabezpieczania formularzy w PHP, wygenerowany losowy token zostanie zapisany w sesji, token ten zostanie przekazany przez formularz. Po przesłaniu formularza porównany zostanie token CSRF z formularza i token przechowywany w sesji. Jeśli obie te wartości się zgadzają, to przesłanie formularza powiedzie się. W przeciwnym razie przesłanie formularza nie powiedzie się. A atakujący nie będzie w stanie odnieść sukcesu w swoich próbach.

6. Obsługa błędów

W trybie produkcji nie wyświetlaj wszystkich błędów użytkownikom, przestrzegaj zasady najmniejszej informacji.

Wniosek:

Zawsze zwracaj uwagę na problemy z bezpieczeństwem na swoje stronie internetowej.

Skomentuj poniżej i daj mi znać, jakie Ty techniki wykorzystujesz na swojej stronie, aby zadbać o jej bezpieczeństwo.

Podziel się swoimi przemyśleniami na temat tego wpisu.

Ostatnio dodane komentarze

Jeszcze nie dodano komentarzy do tego wpisu.