Postgresql i zabezpieczenia
Bartek Siebab - 22-02-2006 21:48
Postgresql i zabezpieczenia
Witam!
Jak ugryźć ten problem:
Jest aplikacja która łączy się z bazą na użytkowniku (każdy juzer ma swoje konto w bazie). Jak zabezpieczyć bazę tak by z poziomu tej aplikacji można było pracować tak jak aplikacja pozwala (napisana w BC++ i ZEOS) by jednak z poziomu ODBC użytkownik nie miał możliwości zaciągania danych z bazy ;-)
Czytać bazę poprzez procedury czy jak? Są jakieś możliwości czy od razu odpuścić temat? Bo przecież po stronie bazy nie da się rozróżnić połączenia czy jest z aplikacji czy z odbc... -- ..---------- -------- ------ ---- ---- --- - -- - | Bartek `saphire` Siebab http://bartek.siebab.net
Cezary Jackiewicz - 22-02-2006 21:48
On Wed, 22 Feb 2006 07:16:01 +0100 Bartek Siebab <bs@vt.pl> wrote:
> Czytać bazę poprzez procedury czy jak? > Są jakieś możliwości czy od razu odpuścić temat? > Bo przecież po stronie bazy nie da się rozróżnić > połączenia czy jest z aplikacji czy z odbc...
Przeciez nic nie stoi na przeszkodzie, ale były inne hasła do bazy i inne do aplikacji.
User podaje hasło, podłącz się bazy jako inny user, który ma prawa tylko do czytania z tabeli haseł. Odczytaj właściwe hasło usera (może być kodowane tym co podał user + jakies inne, nieznne mu), i wtedy podłącz się do bazy już parą user/hasłodb. Może się zalogować do aplikacji, ale nie może do bazy bo jest inne hasło. Nie może je zdekodować bo nie zna potrzebnej mu 2 części klucza.
-- Cezary
Bartek Siebab - 22-02-2006 21:48
> Cezary Jackiewicz w dniu 2006-02-22 07:33 pisze:
> Przeciez nic nie stoi na przeszkodzie, ale były inne hasła > do bazy i inne do aplikacji. > > User podaje hasło, podłącz się bazy jako inny user, który > ma prawa tylko do czytania z tabeli haseł. Odczytaj > właściwe hasło usera (może być kodowane tym co podał user + > jakies inne, nieznne mu), i wtedy podłącz się do bazy już > parą user/hasłodb. Może się zalogować do aplikacji, ale > nie może do bazy bo jest inne hasło. Nie może je zdekodować > bo nie zna potrzebnej mu 2 części klucza.
nie da rady bo aplikacja i baza robi autoryzację w kerberosie :p a ponadto _musi_ być tak że na juzerze rzeczywistym łączy się z bazą a nie na wirtualnym ze względu na historię zmian w bazie na poziomie bazy (triggerami) itp.
-- ..---------- -------- ------ ---- ---- --- - -- - | Bartek `saphire` Siebab http://bartek.siebab.net
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 22-02-2006 21:48
Bartek Siebab wrote: > Witam! > > Jak ugryźć ten problem: > > Jest aplikacja która łączy się z bazą na użytkowniku > (każdy juzer ma swoje konto w bazie). > Jak zabezpieczyć bazę tak by z poziomu tej aplikacji > można było pracować tak jak aplikacja pozwala > (napisana w BC++ i ZEOS) by jednak z poziomu ODBC > użytkownik nie miał możliwości zaciągania danych z bazy ;-) > > Czytać bazę poprzez procedury czy jak? > Są jakieś możliwości czy od razu odpuścić temat? > Bo przecież po stronie bazy nie da się rozróżnić > połączenia czy jest z aplikacji czy z odbc...
Pewnej metody nie ma. Możesz spróbować tworzyć aplikacją tabele tymczasową i coś do niej wpisać, a potem w każdej procedurze sprawdzać czy odpowiedni wpis jest w tej tabeli. Jest to upierdliwe, a pozatym opierasz się na niewiedzy urzytkownika. Jak się dowie na czym polega zabezpieczenie, to je obejdzie. Najlepiej pisać aplikacje tak, żeby była tylko interfejsem graficznym, a logike zawrzeć w bazie - wtedy Ty dbasz o spójność danych, ale za to co wprowadza user on odpowiada (logujesz co kto robił).
-- P.M.
Bartek Siebab - 22-02-2006 21:49
> Paweł Matejski w dniu 2006-02-22 12:16 pisze:
> Możesz spróbować tworzyć aplikacją tabele tymczasową i coś > do niej wpisać, a potem w każdej procedurze sprawdzać czy > odpowiedni wpis jest w tej tabeli. > Jest to upierdliwe, a pozatym opierasz się na niewiedzy urzytkownika. > Jak się dowie na czym polega zabezpieczenie, to je obejdzie. > Najlepiej pisać aplikacje tak, żeby była tylko interfejsem graficznym, > a logike zawrzeć w bazie - wtedy Ty dbasz o spójność danych, ale za to > co wprowadza user on odpowiada (logujesz co kto robił).
chyba nie zrozumialeś mnie...
chcę uniemożliwić podpinanie po odbc do bazy jednakże połączenie z aplikacji (natywnie przez zeosa czy pglib'a) ma działać, czyli progs tak ale odbc nie :-)
-- ..---------- -------- ------ ---- ---- --- - -- - | Bartek `saphire` Siebab http://bartek.siebab.net
Andrzej Kosmala - 24-02-2006 14:45
Użytkownik "Bartek Siebab" <bs@vt.pl> napisał w wiadomości news:dtij58$acc$1@nemesis.news.tpi.pl... > > Paweł Matejski w dniu 2006-02-22 12:16 pisze: > >> Możesz spróbować tworzyć aplikacją tabele tymczasową i coś >> do niej wpisać, a potem w każdej procedurze sprawdzać czy >> odpowiedni wpis jest w tej tabeli. >> Jest to upierdliwe, a pozatym opierasz się na niewiedzy urzytkownika. >> Jak się dowie na czym polega zabezpieczenie, to je obejdzie. >> Najlepiej pisać aplikacje tak, żeby była tylko interfejsem graficznym, >> a logike zawrzeć w bazie - wtedy Ty dbasz o spójność danych, ale za to >> co wprowadza user on odpowiada (logujesz co kto robił). > > chyba nie zrozumialeś mnie... > > chcę uniemożliwić podpinanie po odbc do bazy > jednakże połączenie z aplikacji (natywnie przez zeosa czy pglib'a) > ma działać, czyli progs tak ale odbc nie :-) >
Sądzę, że wszyscy Cię doskonale rozumieją, natomiast Ty nie do końca rozumiesz, gdzie jest problem. Dostałeś sensowne rady, ale nic Ci po nich dopóki nie uświadomisz sobie, że tak naprawdę Twój problem polega na tym, że chcesz uniemożliwić połączenie z bazą za pomocą programu innego niż dedykowany użytkownikom którzy posiadają login i hasło do bazy danych. ODBC nie ma tu nic do rzeczy. Po pierwsze nie uda Ci się po stronie bazy zidentyfikować klienta łączącego się przez ODBC, a nawet jeśli, to sprytny i uparty user podłączy się inaczej i znowy klapa. Jak już napisałem, rady, których Ci udzielono, choć nie wyczerpują wszystkich możliwości, są dobre.
--
Pozdrawiam, Andrzej Kosmala
Bartek Siebab - 28-02-2006 13:11
> Andrzej Kosmala w dniu 2006-02-23 09:25 pisze:
> nich dopóki nie uświadomisz sobie, że tak naprawdę Twój problem polega > na tym, że chcesz uniemożliwić połączenie z bazą za pomocą programu > innego niż dedykowany użytkownikom którzy posiadają login i hasło do > bazy danych. ODBC nie ma tu nic do rzeczy. Po pierwsze nie uda Ci się po
oj rozumiem i to dobrze ;-)
> stronie bazy zidentyfikować klienta łączącego się przez ODBC, a nawet > jeśli, to sprytny i uparty user podłączy się inaczej i znowy klapa. Jak > już napisałem, rady, których Ci udzielono, choć nie wyczerpują > wszystkich możliwości, są dobre.
rzecz w tym że baza robi autoryzację juzera w AD2003 po kreberosie więc jakim cudem mozna to zrobić jadąc na fake userze?
zestawienie połączenia na dedykowanym juzerze to dla mnie nie jest rozwiązanie bo wtedy musze w bazie trzymać konta juzerów z hasłami zatem nie mogę zrobić tak by juzer miał jedno hasło domenowe do wszystkiego w tym także do bazy a chodzi także o integrację z domena AD 2003 więc jedyne co mi przychodzi na myśl to posadzenie aplikacji na terminalu windowsowym, ustawienie bazy by wpuszczała połączenia tylko z tego adresu a ludziska logując się na terminal zamiast shella/explorera dostają od razu aplikację na starcie...
-- ..---------- -------- ------ ---- ---- --- - -- - | Bartek `saphire` Siebab http://bartek.siebab.net
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
=?ISO-8859-2?Q?[psql]_Polskie_t=B3umaczenie_?= =?ISO-8859-2?Q?licencji_BSD_dla_PostgreSQL=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plown-team.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|