Plan wykładu. Wprowadzenie Bezpieczeństwo systemów bazodanowych Przykład zagroŝenia bezpieczeństwa. Pytania. Pokaz



Podobne dokumenty
PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

CREATE USER

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Wykład 8. SQL praca z tabelami 5

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Administracja bazami danych. dr inż. Grzegorz Michalski

Projektowanie systemów baz danych

Oracle11g: Wprowadzenie do SQL

Bazy Danych i Usługi Sieciowe

Uprawnienia, role, synonimy

Bazy danych i usługi sieciowe

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Bazy danych 2. Wykład 1

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

DECLARE VARIABLE zmienna1 typ danych; BEGIN

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Wykład 5: PHP: praca z bazą danych MySQL

Ćwiczenie 14 autoryzacja

Relacyjne bazy danych. Podstawy SQL

Internetowe bazy danych

Składowane procedury i funkcje

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Typy tabel serwera MySQL

Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest

Przestrzenne bazy danych Podstawy języka SQL

Oracle PL/SQL. Paweł Rajba.

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Instalacja MySQL.

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Pakiety podprogramów Dynamiczny SQL

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Język SQL, zajęcia nr 1

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

SQL 4 Structured Query Lenguage

PHP: bazy danych, SQL, AJAX i JSON

Projektowani Systemów Inf.

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

SZKOLENIE: Administrator baz danych. Cel szkolenia

przykłady problemów; realizacja dostaw części od producenta do klienta:

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Wdrożenie modułu płatności eservice. dla systemu Magento

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Relacyjne bazy danych. Podstawy SQL

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

WPROWADZENIE DO BAZ DANYCH

Zarządzanie obiektami bazy danych Oracle11g

Cele. Definiowanie wyzwalaczy

Zarządzanie kontami użytkowników w i uprawnieniami

Bazy danych 10. SQL Widoki

ROZPORZĄDZENIE MINISTRA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

P o d s t a w y j ę z y k a S Q L

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych w PHP dla początkujących

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;

Technologia informacyjna

Administracja bazami danych

Zaawansowane bazy danych i hurtownie danych semestr I

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Oracle PL/SQL. Paweł Rajba.

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Ogólne informacje o Systemie Archiwizacji ZEUS

Administracja i programowanie pod Microsoft SQL Server 2000

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

6. Bezpieczeństwo przy współpracy z bazami danych

15. Funkcje i procedury składowane PL/SQL

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Bazy danych. Dr inż. Paweł Kasprowski

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Przykładowa baza danych BIBLIOTEKA

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Wykład 2. Relacyjny model danych

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Transkrypt:

Bazy danych

Plan wykładu Wprowadzenie Bezpieczeństwo systemów bazodanowych Przykład zagroŝenia bezpieczeństwa Pokaz Pytania

Wprowadzenie Bazy danych dostęp lokalny dostęp zdalny Internetowe bazy danych

Wprowadzenie Problem bezpiecznego udostępniania informacji utrzymywanie spójności więzy integralności odporność na błędy odtworzenie stanu bazy danych w przypadku awarii dostępność ochrona przed nieupowaŝnionym dostępem polityka bezpieczeństwa w zakresie dostępu do danych

Wprowadzenie Problem bezpiecznego udostępniania informacji cd. Język SQL a bezpieczeństwo Polecenia dotyczące transakcji SET Transaction Nadawanie/odbieranie uprawnień GRANT/REVOKE Szyfrowanie danych W wybranych implementacjach

Wprowadzenie Bezpieczeństwo bazy danych UŜytkownicy, grupy uŝytkowników i ich uprawnienia Uprawnienia dot. języka DDL tworzenie obiektów modyfikacja definicji obiektów usuwanie obiektów

Wprowadzenie Bezpieczeństwo bazy danych UŜytkownicy, grupy uŝytkowników i ich uprawnienia Uprawnienia dot. języka DML dostęp do danych SELECT

Bazy danych a polityka bezpieczeństwa Podejście 1: bezpieczeństwo uznaniowe nadawanie/odbieranie uprawnień do wykonywania operacji na określonych obiektach Podejście 2: bezpieczeństwo mandatoryjne stosowanie list uprawnień

Projektowanie bezpiecznych baz danych Metodyka wielofazowa Określenie wymagań w zakresie bezpieczeństwa dla danego środowiska, niezaleŝnie od oprogramowania Nie rozpoczynamy od moŝliwości oferowanych przez SZBD Obejmuje 5 faz

Projektowanie bezpiecznych baz danych Metodyka wielofazowa Analiza wstępna Formułowanie wymagań oraz opracowanie polityki bezpieczeństwa Projektowanie konceptualne Projektowanie logiczne Projektowanie fizyczne

Projektowanie bezpiecznych baz danych Metodyka wielofazowa: Analiza wstępna Badanie wykonalności systemów zabezpieczeń Ocena ryzyka zagroŝenia, straty Cechy środowiska BD (zastosowania militarne, komercyjne) Stosowalność produktów (adaptacja produktów, tworzenie systemu zabezpieczeń od podstaw) Spójność produktów (integracja mechanizmów zabezpieczeń z moŝliwościami sprzętu i oprogramowania) Wynik tej fazy: decyzja o przejściu do kolejnej fazy

Projektowanie bezpiecznych baz danych Metodyka wielofazowa: Formułowanie wymagań oraz opracowanie polityki bezpieczeństwa Analiza zagroŝeń obejmująca: Analizę wartości (kontrola zwiększa się wraz z wartością) Identyfikację zagroŝeń Analizę odporności (identyfikacja słabych punktów) Analizę i szacowanie ryzyka prawdopodobieństwo zajścia niepoŝądanego zdarzenia Definiowanie wymagań Wynik tej fazy: wymagania dotyczące bezpieczeństwa

Projektowanie bezpiecznych baz danych Metodyka wielofazowa: Formułowanie wymagań oraz opracowanie polityki bezpieczeństwa Wymagania: Dział finansowy ma dostęp do danych finansowych wyłącznie z terminala 1 Kto, co, z czym i pod jakim warunkiem <podmiot, akcja, obiekt, warunek> Przygotowanie polityki bezpieczeństwa Zdefiniowanie autoryzowanego dostępu do róŝnych obiektów w systemie dla kaŝdego z podmiotów

Projektowanie bezpiecznych baz danych Metodyka wielofazowa: Projektowanie konceptualne Formalizacja koncepcji modelu bezpieczeństwa Określenie podmiotów i obiektów (oraz ich grupowanie) Identyfikacja trybów dostępu do obiektów przyznanych róŝnym podmiotom Analiza propagacji autoryzacji w systemie

Projektowanie bezpiecznych baz danych Metodyka wielofazowa: Projektowanie logiczne Przekształcenie koncepcji w model logiczny Określenie, które wymagania mogą być zrealizowane przez istniejące mechanizmy SZBD, a które trzeba stworzyć

Projektowanie bezpiecznych baz danych Metodyka wielofazowa: Projektowanie fizyczne Opracowanie fizycznej struktury reguł dostępu IMPLEMENTACJA MECHANIZMÓW BEZPIECZEŃSTWA

Projektowanie bezpiecznych baz danych Implementacja mechanizmów bezpieczeństwa Stosować proste, wydajne, weryfikowalne, niesprzeczne, kontrolowalne, trudne w obejściu mechanizmy bezpieczeństwa Minimalny poziom uprawnień Niezawodny sprzęt

Mechanizmy bezpieczeństwa w systemach bazodanowych Przeciwmiary dla następujących zagroŝeń Nielegalny odczyt/modyfikacja danych przez nieuprawnionych uŝytkowników Błędy związane z operacjami na danych Skutki kolizji przy współbieŝnym dostępie do danych Awaria: oprogramowania/sprzętu

Mechanizmy bezpieczeństwa w systemach bazodanowych Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Zabezpieczenia po stronie aplikacji klienckiej Szyfrowanie danych Prywatność w systemach statystycznej analizy danych Ochrona integralności danych Integralność semantyczna i transakcyjna

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Uwierzytelnianie Przyznawanie uprawnień Ograniczenie zakresu działań do obszaru wyznaczonego przyznanymi uprawnieniami

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Tworzenie kont uŝytkowników Określenie hasła Nadawanie uprawnień Uprawnienia ogólne (dot. całej bazy danych) Uprawnienia szczegółowe (dot. obiektu bazy danych)

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Uprawnienia ogólne (Oracle) Tworzenie kont uŝytkowników CREATE USER <nazwa> IDENTIFIED BY <hasło> Nadawanie uprawnień GRANT <uprawnienie> To <uŝytkownik> Uprawnienia: np. CREATE TABLE

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Uprawnienia ogólne (Informix) Tworzenie uŝytkowników powiązane z nadaniem uprawnień GRANT <klasa uŝytkownika> TO <uŝytkownik> IDENTIFIED BY <hasło> Klasy uŝytkowników CONNECT (prawo dostępu do tablic) RESOURCE (prawo tworzenia tablic) DBA (wszelkie prawa)

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Uprawnienia szczegółowe GRANT <uprawnienie> ON <obiekt> TO <uŝytkownik> [WITH GRANT OPTION] WITH GRANT OPTION moŝliwość przekazania nadanych uprawnień innym uŝytkownikom Uprawnienia SELECT, INSERT, DELETE, ALTER,... RESOURCE (prawo tworzenia tablic) DBA (wszelkie prawa)

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Uprawnienia szczegółowe Mogą być przyznawane do wirtualnych tablic (perspektyw) ZawęŜenie do konkretnych kolumn, wierszy

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie serwera bazy danych Przykład (MySQL) Instalacja: apt-get install mysql-server mysql-common mysql-client Konfiguracja: mysqladmin -u root password haselko Utworzenie nowej bazy danych: mysqladmin create postnuke -u root -p Utworzenie nowego uŝytkownika: a) mysql -u root -p b) mysql> USE mysql; c) mysql> INSERT INTO user set Host='localhost', User='nuke', Password=PASSWORD('haslo'); d) grant select,insert,update,delete,create,drop on postnuke.* to nuke@localhost identified by 'haslo'; e) mysql> FLUSH PRIVILEGES;

Pokaz

Zabezpieczanie dostępu do danych Zabezpieczenia po stronie aplikacji klienta Dostęp do wybranych funkcji aplikacji Dostrojenie menu (pozycje aktywne i pozycje wygaszone) Konieczne jest skorelowanie uprawnień: tych na poziomie aplikacji, z tymi na poziomie serwera

Zabezpieczanie dostępu do danych Szyfrowanie w bazach danych Szyfrowanie haseł uŝytkowników Szyfrowanie procedur składowanych, ciał funkcji, etc. Szyfrowanie przechowywanych danych Szyfrowanie tablic Szyfrowanie rekordów Szyfrowanie transmitowanych danych

Zabezpieczanie dostępu do danych Prywatność w systemach statystycznej analizy danych Systemy statystycznej analizy danych działają na bazach danych (np. medycznych) Formułowane w zapytaniach warunki nie mogą dotyczyć atrybutów identyfikujących osoby, firmy,... Odpowiedzi dotyczą tylko wartości zagregowanych

Zabezpieczanie dostępu do danych Prywatność w systemach statystycznej analizy danych Zapytanie o liczbę chorych spełniających warunki: męŝczyzna, wiek 30 lat, zawód listonosz, miejsce zamieszkania Zabrze niewielki zbiór odpowiedzi (np. 1-elementowy) MoŜliwość doprecyzowania zapytania Ochrona przed zapytaniami dla których liczebność zbioru odpowiedzi jest mniejsza od zadanej wartości

Ochrona integralności danych Integralność semantyczna Związana z błędami logicznymi w danych Integralność transakcyjna Związana ze współbieŝnym dostępem do danych Związana z awariami sprzętu i oprogramowania

Ochrona integralności danych Integralność semantyczna oznacza: Zgodność wartości danych ze znaczeniem atrybutów Zgodność wartości logicznie powiązanych danych Kontrola zgodności realizowana jest poprzez ograniczenia Ograniczenia nakładane na dziedziny atrybutów Więzy referencyjne

Ochrona integralności danych Integralność semantyczna Ograniczenia nakładane na dziedziny atrybutów Waga powinna być liczbą nieujemną Płeć powinna być wyraŝona za pomocą jedną z wartości z zadeklarowanego wcześniej zbioru Ograniczenia realizowane za pomocą wyzwalaczy

Ochrona integralności danych Integralność semantyczna Więzy referencyjne dotyczą zaleŝności między rekordami; zaleŝności te realizowane są przez związek pomiędzy kluczem głównym, a kluczem obcym Przykład Przypisanie pracownika do działu identyfikator zespołu w rekordzie opisującym pracownika musi mieć odpowiednik w identyfikatorze istniejącego zespołu

Ochrona integralności danych Integralność semantyczna Więzy referencyjne Powstaje związek: tablicy nadrzędnej z tablicą podrzędną Tablica nadrzędna zawiera klucz główny MoŜliwe ograniczenia przy więzach referencyjnych Usunięcie wiersza z tablicy nadrzędnej powoduje usunięcie wszystkich wierszy z tablicy podrzędnej Usunięcie wiersza z tablicy nadrzędnej jest moŝliwe, gdy w tablicy podrzędnej brak wierszy logicznie związanych z wierszem usuwanym Usunięcie wiersza z tablicy nadrzędnej powoduje wstawienie wartości pustych w miejsce klucza obcego

Ochrona integralności danych Integralność transakcyjna Transakcja to ciąg operacji na bazie danych tworzących całość

Ochrona integralności danych Integralność transakcyjna Przykład transakcji Przepisanie wartości W z konta A na konto B T: początek odczyt A A:=A-W zapis A odczyt B B:=B+W zapis B koniec

Ochrona integralności danych Integralność transakcyjna Integralność w podanym przykładzie: badanie zgodności sumy kont: przed i po transakcji Rozpatrzymy dwa zagroŝenia integralności WspółbieŜna realizacja wielu transakcji operujących na tej samej bazie danych Przerwanie transakcji w wyniku wystąpienia sytuacji uniemoŝliwiającej zakończenie transakcji np. awaria sprzętu, oprogramowania

Ochrona integralności danych Integralność transakcyjna WspółbieŜna realizacja wielu transakcji operujących na tej samej bazie danych Transakcje: T1 i T2 T1: A Kwota W1 B T2: B Kwota W2 C odczyt A A:= A W1 zapis A odczyt B B:= B + W1 zapis B odczyt B B:= B W2 zapis B odczyt C C:= C + W2 zapis C

Ochrona integralności danych Integralność transakcyjna odczyt A A:= A W1 zapis A odczyt B B:= B + W1 zapis B Odczyt B w T1, przed zapisem B w T2 Stan konta B = B Pocz + W1 Zamiast B = B Pocz W2 + W1 odczyt B B:= B W2 zapis B odczyt C C:= C + W2 zapis C Sumy kont: A Pocz + B Pocz + C Pocz + W2

Ochrona integralności danych Integralność transakcyjna Ochrona poprzez zastosowanie mechanizmu blokad Zablokowanie dostępu do stanu konta B przez inną transakcję (tutaj: T1) uniemoŝliwi odczyt konta B przed zapisem w transakcji T2 Dwufazowy protokół blokowania (2PC) NałoŜenie wszystkich blokad, a potem zwolnienie pierwszej blokady i kolejnych

Ochrona integralności danych Zarządzanie transakcjami Transakcja zostaje przerwana w wyniku awarii (np. prądu) Nie wszystkie transakcje zostają zakończone Np. obciąŝenie konta X awaria (brak uznania konta Y) Ponowne uruchomienie systemu niespójna baza danych Solucja? Zasada wszystko albo nic Wykorzystanie dziennika transakcji

Ochrona integralności danych Zarządzanie transakcjami Dziennik transakcji zawiera informacje o operacji Identyfikator transakcji Adres danej, która ma być zmodyfikowana Nowa wartość danej Wykorzystywana jest metoda z opóźnionym zapisem do bazy Odnotowanie w dzienniku, a dopiero potem zapis w bazie danych (odnotowywanie wypełnienia transakcji)

Ochrona integralności danych Zarządzanie transakcjami Przed zakończeniem transakcji nie następuje Ŝadna zmiana w bazie danych, wycofanie polega zatem na dokonaniu odpowiedniego wpisu w dziennik Przyczyny wycofania transakcji Brak danych (np. konta B) Wzajemna blokada transakcji Upadek systemu

Atak SQL Injection Internetowe bazy danych Interfejs webowy dostępu do danych w bazie danych Korzyść i zagroŝenie Trójwarstwowa architektura Dane Warstwa pośrednicząca Aplikacja kliencka

Atak SQL Injection Zapytanie kierowane jest przez interfejs aplikacji klienckiej do bazy danych Warstwa pośrednicząca przygotowuje właściwe zapytanie SQL Atak SQL Injection polega na nieautoryzowanym wykonaniu wyraŝeń języka SQL

Atak SQL Injection Dodanie do właściwego zapytania, zapytania dodatkowego (nieautoryzowanego) Rezultat Uzyskanie dostępu do danych Modyfikacja danych Obejście mechanizmów uwierzytelniających

Atak SQL Injection ZałoŜenie: przykładowy formularz Formularz webowy z polem tekstowym Zawartość pola tekstowego jest wpisywana do treści zapytania 1. SELECT nazwisko FROM Pracownicy WHERE 2. pensja = 1000 3. SELECT nazwisko FROM Pracownicy WHERE pensja=1000;

Atak SQL Injection Atak (1) Formularz webowy z polem tekstowym Zawartość pola tekstowego jest wpisywana do treści zapytania 1. SELECT Nazwisko FROM Pracownicy WHERE 2. pensja=800 union SELECT user FROM user; 3. SELECT nazwisko FROM Pracownicy WHERE pensja=1000 union SELECT user FROM user;

Atak SQL Injection Atak (2) Modyfikacja danych UŜytkownik: ; delete from users Wynik: SELECT id FROM users WHERE username = "; delete from users Zawartość tablicy users zostanie usunięta

Atak SQL Injection Formularz webowy z polami tekstowymi <HTML> <BODY> FORM ACTION=LoginPage2.php> Uzytkownik: <INPUT NAME="username"><BR> Haslo: <INPUT NAME="password"><BR> <INPUT TYPE="submit" VALUE="Zaloguj"> </FORM> </BODY>

Atak SQL Injection Plik: LoginPage2.php function MyAuth( $conn,$username,$password) { $query = "SELECT id FROM users WHERE"; $query.= " username = ". $username. "' AND "; $query.= " password = ". $password. "'"; $res = pg_query($query); $res); } if (pg_num_rows( $res) == 1) { $row = pg_fetch_array( $id = $row[ id']; } else {$id = 0;} return $id;

Atak SQL Injection Atak (3) Obejście mechanizmów uwierzytelniających UŜytkownik: or 1 = 1-- Wynik: SELECT id FROM users WHERE username = " OR 1 = 1 Zalogowanie na konto pierwszego uŝytkownika w BD

Pokaz

Pytania

Dziękuję