ForumCała strona

Nawigacja

Aktualnie online

Gości online: 27

Użytkowników online: 0

Łącznie użytkowników: 25,400
Najnowszy użytkownik: AlojzyBartek

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

piterus
30.10.2024 19:45:48
I będziemy śpiewać: "Kiedy 20 blisko, przebadaj wszystko, przebadaj wszystko..." Pfft

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Nawigacja

Ataki XSS i SQL Injection

Napisane przez Milka dnia 06 maja 2007 20:13 · 2 komentarze · 14141 czytań · Drukuj · Facebook · Wykop

Streszczenie:

Z jakimi atakami na strony mamy często do czynienia?

Ataki na strony wykorzystujące bazy danych zdarzają się coraz częściej. Wykorzystywane są tutaj przede wszystkim ataki XSS i SQL Injection. Zapewne wielu z Was wystraszy już sama nazwa, a co dopiero mówić o tym, na czym to polega. Jednak zapewniam Was, że nie taki diabeł straszny, dlatego artykuł ten kieruję głównie do osób "zielonych", które chcą poszerzać swoją wiedzę.

1. Co to jest XSS i od której strony to ugryźć?

XSS (z angielskiego Cross Site Scripting) to metoda przechwytywanie poufnych informacji. W celu wydobycia danych, haker wykorzystuje tutaj zaufane źródło (witrynę). Dzieje się tak poprzez groźny kod HTML lub Java Script wprowadzany na przykład na forum. Złośliwy kod wykonywany jest przez osoby odwiedzające ową stronę. Atak hakera odbywa się przez wcześniej złamaną witrynę.
Oto graficzne wyjaśnienie problemu:

2. Co to jest SQL Injection i lepiej jeść to nożem i widelcem czy łyżką?

SQL Injection (z angielskiego "wstrzyknięcie SQL") to metoda polegająca na wysyłaniu, za pomocą dostępnego dla wszystkich formularza, takiego fragmentu tekstu (kodu), który zmienia oryginalne zapytanie SQL.
Wynikiem tego jest zmiana wyglądu strony lub jej działania.
Oto graficzne przedstawienie działania SQL Injection:
3. Ochrona przed atakami XSS

Zabezpieczanie się przed atakami XSS nie jest wcale trudne.
Pomoże nam w tym kilka prostych funkcji PHP, które służą do zabezpieczania skryptów:
a) htmlspecialchars() - przekonwertowanie znaków specjalnych (&, <, > itp.) na kody, które pozwalają ich wyświetlanie w tekście HTML (np. znak & zostanie zastąpiony & a m p - oczywiście bez spacji)
b) mysql_real_escape_string() - dodanie znaku \ przed potencjalnie groźnymi znakami w tekście
c) strip_tags() - wycięcie z tekstu znaczników PHP i HMTL.


4. Ochrona przed atakami SQL Injection

Zabezpieczanie się przed atakami SQL Injection zmusza do staranności, jednak zwykły użytkownik powinien sobie z tym poradzić. Aby dostatecznie ochronić nasze formularze przed złośliwymi zapytaniami SQL trzeba szczegółowo sprawdzać, jakie dane mogą być wprowadzone do formularza na naszej WWW.
Jeśli mamy do czynienia ze zmienną:
a) tekstową to umieszczamy ją w cudzysłowach
$test = ‘ WHERE data_i_czas=” ‘ . htmlspecialchars ($_POST[‘sql_injections’]).’ “ ‘
b) numeryczną to powinniśmy zbudować zapytanie tak, aby miało ono tylko i wyłącznie wartość numeryczną; w tym celu wykorzystać możemy funkcję intval(), która zmienia argument na liczbę całkowitą
$test = ‘ WHERE data_i_czas=’ . intval ($_POST[‘sql_injections’]);

I tak oto przebrnęliśmy razem przez wprowadzenie do zagadnienia ataków XSS i SQL Injection. Myślicie, że było aż tak strasznie? Moim zdaniem, chyba da się przeżyć i naprawdę warto przeczytać cokolwiek na ten temat i choć trochę wzbogacić swoją wiedzę. W końcu nie wiadomo, czy to właśnie nie wasza witryna padnie ofiarom hakerów. Mam oczywiście nadzieję, że tak się nie stanie, jednak zawsze lepiej dmuchać na zimne :)



Pozdrawiam Milka
milks92 [at] gmail [dot] com

Komentarze

#1 | JazOOn dnia 06 maja 2007 20:42
nie taki diabeł straszny jak go opisująGrin
#2 | slawekneo dnia 09 czerwca 2007 12:03
w arcie jest blad Grin tzn w nazwie funkcji
Cool mysql_real_escape_strong() - dodanie znaku \ przed potencjalnie groźnymi znakami w tekście

a powinno byc
Cool mysql_real_escape_string() - dodanie znaku \ przed potencjalnie groźnymi znakami w tekście

hmm jestem ciekaw czemu to wlasnie fusion nie korzysta z tej funkcji o ile wiem jest ona szybsza od stripslashes() ktorej to uzywa fusion ;]
nawet IPB z niej korzysta Wink
Pozdro!!

Dodaj komentarz

Zaloguj się, aby móc dodać komentarz.

Oceny

Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się lub zarejestruj, żeby móc zagłosować.

Brak ocen. Może czas dodać swoją?
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl