Podstawy XSS
Założenie: Pokażemy, jak podatność na XSS może pozwolić na wstrzyknięcie złośliwego kodu JavaScript do strony internetowej.
Krok po kroku:
- Krok 1: Vulnerable Code (niebezpieczny kod)
<?php $user_input = $_GET['name']; echo "<p>Witaj, " . $user_input . "!</p>"; ?>
Ten kod pobiera wartość parametru `name` z adresu URL i wyświetla ją bezpośrednio na stronie. Brak walidacji i sanitacji danych wprowadzonych przez użytkownika.
- Krok 2: Atak XSS
Jeśli użytkownik odwiedzi stronę z parametrem
name
ustawionym na<script>alert('XSS')</script>
, kod JavaScript zostanie wykonany w przeglądarce użytkownika, wyświetlając alert “XSS”.https://przykladowa-strona.pl/?name=<script>alert('XSS')</script>
- Krok 3: Zabezpieczony kod
<?php $user_input = htmlspecialchars($_GET['name']); echo "<p>Witaj, " . $user_input . "!</p>"; ?>
Funkcja `htmlspecialchars()` konwertuje specjalne znaki HTML (takie jak <, >, “, ‘) na ich odpowiedniki HTML entities, zapobiegając wykonaniu kodu JavaScript.
Ten przykład pokazuje podstawy ataku XSS i jak go zapobiegać. Pamiętaj, że zawsze należy walidować i sanitować dane wprowadzane przez użytkowników, aby zabezpieczyć swoją aplikację przed tego typu atakami. Zachęcamy do dalszego zgłębiania tematu bezpieczeństwa w PHP!