Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Zabezpieczenia formularzy
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Zabezpieczenia formularzy
Technologie webowe

Zabezpieczenia formularzy

WebInside.pl
Ostatnia aktualizacja: 24.07.2003
WebInside.pl
Udostępnij
Udostępnij

Niemal wszyscy w swoich aplikacjach korzystają z formularzy, ale nie wiedzą że to jest niebezpieczne. Chytry użytkownik może to wykorzystać, jeżeli chcesz zabezpieczyć swoje formularze, przeczytaj ten artykuł.

Jeżeli korzystasz z PHP niemal pewnym jest że używasz w swoich skryptach różnych pól formularzy. I słusznie, są one pewną formą interakcji z użytkownikiem. Z pewnością większość z was nigdy nie zastanawiała się nad tym że ktoś może próbować załamać wasz skrypt. Mówiąc załamać mam na myśli użycie go do nie zamierzonego celu, lub w niezamierzony sposób. Nie trzeba być hakerem aby „rozpracować” stronę z kiepsko zrobionym skryptem, otóż załamać taki skrypt jest bardzo łatwo. To co przedstawię w tym artykule ma na celu przekazanie wam wiedzy w celu ulepszenia swoich skryptów, a nie załamywanie skryptów kogoś innego. Jeżeli wykryjecie na czyjejś stronie takie skrypty natychmiast dajcie znać administratorowi serwisu. Oczywiście nie będę tu uczył hakerstwa, powiem tylko co się może ewentualnie stać…

Zacznę od podania prostego przykładu. Wyobraźmy sobie że napisaliśmy skrypt, dzięki któremu każdy kto odwiedza twoją stronę może się do niego dopisać… Oczywiście jest to bardzo prosty skrypt, wpisuje się w pole tekstowe swoje imię i nazwisko, wciska guzik i po kłopocie. A teraz wyobraźmy sobie jakiegoś dowcipnisia który wpisuje w pole tekstowe coś takiego:

<h1><b style=”font-family:Arial; border-style: solid”>Jaś Kowalski</b></h1>

Wyobrażacie sobie jak to będzie wyglądało??? Ktoś następny wchodzi i od razu rzuca mu się napis Jaś Kowalski… Łatwy sposób na reklamę. Jak się przed czymś takim ustrzec, nic prostszego, przykładowo gdy zapisujemy wartość pola tekstowego do zmiennej $nazwisko, przed wyświetleniem jej na stronie możemy użyć instrukcji:

$nazwisko = strip_tags($nazwisko);

w wyniku zostanie wyświetlone sam napis „Jaś Kowalski”, ponieważ funkcja strip_tags() usuwa z podanego łańcucha znaków wszystkie znaczniki. Możemy Jasia załatwić w inny sposób, używając funkcji HTMLSpecialChars() w taki sposób:

$nazwisko = HTMLSpecialChars($nazwisko);

wtedy dla Jasia ukaże się dokładnie to co napisał, czyli:

<h1><b style=”font-family:Arial; border-style: solid”>Jaś Kowalski</b></h1>

z tego wpisu będzie widać co najwyżej że Jasio to cwaniak który zna HTML i wydaje się mu że jest Haker.

Taki Jasio jest jednak nie szkodliwy, co najwyżej śmieszny… Wyobraźmy sobie sytuację kiedy naszą stronę odwiedza starszy brat Jasia, Staś. Stasio ma o sobie większe mniemanie i wchodzi na stronę na której loguje się administrator, jest tam pole tekstowe w które należy wpisać hasło… Staś wpisuje nam coś takiego:

eval(” echo strip_tags( implode( ’ ’ , file( $PHP_SELF ) ) ) „);

nieco skomplikowany zapis, ale całkiem niebezpieczny, co prawda nie ma za wielkich szans na powodzenie, ale owszem może się udać. Funkcja eval() wykonuje łańcuch znaków zawarty wewnątrz jej jak gdyby był kodem PHP. funkcja echo wypisuje podaną wartość na ekran. Funkcja strip_tags, jak już wspominałem usuwa z podanego łańcucha znaków znaczniki HTMl i PHP. Funkcja file() zwraca podany plik w postaci tablicy, gdzie każdy element jest kolejną linią pliku. A $PHP_SELF to stała PHP zawierająca adres aktualnego dokumentu. A funkcja implode() łączy podana tablice w jeden ciąg. Jak nie trudno się domyślić, ta instrukcja pobierze aktualną stronę i wyświetli jej zawartość. Jeżeli sprawdzanie hasła odbywa się na stronie, najprawdopodobniej Stasio dostanie się do hasła… Jak tego uniknąć? Bardzo prosto, również używając funkcji strip_tags() na zmiennej przechowującej hasło przed jej wykorzystaniem.

W porządku, jeśli jednak mamy rozbudowany formularz, takie sprawdzanie każdej zmiennej może być żmudne, wtedy po prostu trzeba sobie napisać odpowiednią funkcję… Oto drobny przykład.

function spr( $wartosc )
{
$wartosc = strip_tags( $wartosc );
}

i gotowe, funkcja nie zwraca wartości aby była krótsza i szybsza, po prostu będziemy przekazywać parametr przez zmienną. Przykładowo mamy zmienne zawierające wartości pól formularza: $imie, $nazwisko, $wiek. Aby je sprawdzić wpisujemy tak:

spr(&imie);
spr(&nazwisko);
spr(&wiek);

i po kłopocie, dzięki tej prostej funkcji możecie sobie oszczędzić wielu kłopotów, a przykładowy Jaś i Staś będą musieli albo znaleźć nowe sztuczki albo nauczyć się prawdziwego Hakerstwa.

Może Cię zainteresować

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

Serwer dla małej firmy – czym kierować się przy jego wyborze?

WebInside.pl 2003-07-24 2003-07-24
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Przeglądanie tablic w PHP
Następny artykuł Przekazywanie przez wartosć, zmienną
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Procesor AMD Ryzen 7
Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
Technologie
Jak przygotować sklep internetowy na automatyzację obsługi klienta?
Artykuły partnerskie
the nvidia logo is displayed on a table
Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
AI Aktualności
Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?
E-marketing
4 najczęstsze cyberzagrożenia w przemyśle
Technologie
Jak uratować zaschnięty tusz do drukarki? Skuteczne domowe sposoby i porady
Poradniki
Model 3D jako wspólne źródło danych dla projektu, produkcji i montażu
Artykuły partnerskie
Dlaczego wideo z telefonu sprzedaje na TikToku lepiej niż profesjonalne spoty?
Artykuły partnerskie
Dwa ekrany zawsze pod ręką – zalety korzystania z monitora przenośnego na co dzień
Technologie
Rola nowoczesnych technologii w procesie rehabilitacji
Artykuły partnerskie
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

5 min czytania
Technologie webowe

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

7 min czytania
MacBook Pro showing programming language
Technologie webowe

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

9 min czytania
AktualnościTechnologie webowe

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

9 min czytania
woman in black top using Surface laptop
Technologie webowe

Serwer dla małej firmy – czym kierować się przy jego wyborze?

5 min czytania
Technologie webowe

Jaki hosting wybrać pod Laravel? Kompleksowy przewodnik dla twórców aplikacji webowych

6 min czytania
programming language
Technologie webowe

Kaskadowość w CSS – wszystko, co musisz wiedzieć

7 min czytania
two women talking while looking at laptop computer
Technologie webowe

Darmowe kreatory stron WWW – stwórz swoją stronę w godzinę

14 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy

Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
  • Jak przygotować sklep internetowy na automatyzację obsługi klienta?
  • Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
  • Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?