Hehe, taki nieco fikuśny temat ;)
Ale siedzę sobie właśnie w pracy i chyba odkryliśmy z kumplem potężne uchybienie w bezpieczeństwie :)
Mam u siebie uruchomioną bazę danych MS SQL Server i kumpel obok łączy się z nią aby pracować na jednej bazie.
Chciał dodać dane poprzez bulk insert więc napisał:
BULK INSERT [Tabela] FROM 'c:\plik.txt' WITH (FIELDTERMINATOR = '\t')
i co? dostał komunikat, że plik 'c:\plik.txt' nie istnieje. Myślimy, dumamy i nic. I nagle myśl, że skoro pracuje na bazie na moim kompie to i może serwer szuka tego pliku u mnie. Wrzuciłem go do siebie na c:\ i... poszło! Załadował! Zaznaczam, że nie mam udostępnionego dysku C
Co z tego wynika?
Jeśli mamy bazę na zdalnym komputerze, to tworzymy sobie pole binarne i (teoretycznie) poprzez bulk insert możemy załadować do bazy dowolny plik, do których normalnie nie mamy dostępu - potem tylko select i mamy zawartość tego pliku!
Na mój gust to potężna dziura w bezpieczeństwie - przecież w ten sposób można uzyskać np. cały rejestr Windowsa czy inne pliki, w których są jakieś hasła, loginy, ogólnie tajne dane.
Co o tym sądzicie?
// Przeniosłem do H/S bo to stricte o jednej bazie jest - Q
//a jaką masz pewność że tylko w jednej? Pozwól, że sam będę decydował o dziale, w którym będę pisał - M
Zdaje się, że mówimy o MS SQL Server (tudzież MSDE) a nie MySQL
// Jak sprawdzisz w innych bazach to się ukorzę - Q
//kpisz? Niczego nie będę sprawdzał abyś się ukorzył... fomcl... - M
// Więc ten post tutaj zostanie :P - Q