ďťż
 
[PostgreSQL] zabezpieczenie bazy przed userem ďťż
 
[PostgreSQL] zabezpieczenie bazy przed userem
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[PostgreSQL] zabezpieczenie bazy przed userem



=?iso-8859-2?Q?Bart=B3omiej_Bochi=F1ski?= - 28-07-2007 00:01
[PostgreSQL] zabezpieczenie bazy przed userem
  Oczywiście chodzi o obronę przed SQL Injection.

Chcę zablokować userowi takie polecenia jak DROP, UNION, INTERSECT, których
naturalnie nie wykorzystuje w aplikacji (php).

Można to jakoś zrobić?

W psql nie widzę takiej opcji, a przejrzałem manual:
http://img69.imageshack.us/img69/870...stgrsqlra1.jpg

W zasadzie wydawało mi się, że potencjalny haker nie przebije się przez
moją aplikację, ale co raz to dowiaduje się o czymś nowym. Aktualnie o
różnych "bajtach", m.in o null, które mogą dużo namieszać.
--
Bartłomiej





=?ISO-8859-2?Q?Rafa=B3_Korszu=F1?= - 28-07-2007 00:01

  Bartłomiej Bochiński napisał(a):
> Oczywiście chodzi o obronę przed SQL Injection.
>
> Chcę zablokować userowi takie polecenia jak DROP, UNION, INTERSECT, których
> naturalnie nie wykorzystuje w aplikacji (php).
>

nie możesz kontrolować zapytań z poziomu aplikacji ??

Rafał
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych




=?iso-8859-2?Q?Bart=B3omiej_Bochi=F1ski?= - 28-07-2007 00:01

  Dnia 27 Jul 2007 16:36:19 +0200, Rafał Korszuń napisał(a):

> Bartłomiej Bochiński napisał(a):
>> Oczywiście chodzi o obronę przed SQL Injection.
>>
>> Chcę zablokować userowi takie polecenia jak DROP, UNION, INTERSECT, których
>> naturalnie nie wykorzystuje w aplikacji (php).
>>
>
> nie możesz kontrolować zapytań z poziomu aplikacji ??
>
> Rafał

Tak robie, ale zawsze lepiej sie zabezpieczac podwojnie :)
--
Bartłomiej




hubert depesz lubaczewski - 28-07-2007 00:01

  Dnia 27.07.2007 Bartłomiej Bochiński <adresik@gmail.com> napisał/a:
> Można to jakoś zrobić?

tego o co prosisz - nie.
ale można trywialnie zabezpieczyć się inaczej:
odebrać prawa userowi do dostępu do tabel i cały dostęp dać przez
wydzielone funkcje/widoki które będą zwracały to co trzeba.

ale w/g mnie to jest bzdura.

zabezpiecznie przez sql-injection to nie jest jakaś wielka sztuka.
stosujesz po prostu placeholdery albo pg_escape_string i po sprawie.

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)





Piotr 'piter' Hlawski - 28-07-2007 00:01

  hubert depesz lubaczewski wrote:

> Dnia 27.07.2007 Bartłomiej Bochiński <adresik@gmail.com> napisał/a:
>> Można to jakoś zrobić?
>
> tego o co prosisz - nie.
> ale można trywialnie zabezpieczyć się inaczej:
> odebrać prawa userowi do dostępu do tabel i cały dostęp dać przez
> wydzielone funkcje/widoki które będą zwracały to co trzeba.
>
> ale w/g mnie to jest bzdura.
>
> zabezpiecznie przez sql-injection to nie jest jakaś wielka sztuka.
> stosujesz po prostu placeholdery albo pg_escape_string i po sprawie.

W przypadku PHP warto używać PDO --- podnosi to znacznie bezpieczeństwo.

--
..:: Piter // phlawski$gmail,com // gg: 4534287 ::.
Chuck Norris nigdy w życiu nie mrugnął. Nigdy.




=?iso-8859-2?Q?Bart=B3omiej_Bochi=F1ski?= - 28-07-2007 00:01

  Dnia Fri, 27 Jul 2007 17:25:06 +0200, hubert depesz lubaczewski napisał(a):

> Dnia 27.07.2007 Bartłomiej Bochiński <adresik@gmail.com> napisał/a:
>> Można to jakoś zrobić?
>
> tego o co prosisz - nie.
> ale można trywialnie zabezpieczyć się inaczej:
> odebrać prawa userowi do dostępu do tabel i cały dostęp dać przez
> wydzielone funkcje/widoki które będą zwracały to co trzeba.
>
> ale w/g mnie to jest bzdura.
>
> zabezpiecznie przez sql-injection to nie jest jakaś wielka sztuka.
> stosujesz po prostu placeholdery albo pg_escape_string i po sprawie.
>
> depesz

Otoz nie zgodze sie. Samo pg_escape_string nie jest wystarczajace.

Tutaj przykład z MySQLem http://hacking.pl/data/hackme.pdf Nie uzyto
zadnego średnika, cudzyslowiu itp. Wiadomo, że normalnie kazdy by to
zrzutowal na inta i po sprawie.

Zeby to bylo takie proste, ze wystarczy uzyc pg_escape_string to bysmy nie
dostawali tyle spamu :) Tak nasze adresy sa zdobywane. (tak, wiem, ze mam
adres w sygnaturce :p)

> tego o co prosisz - nie.

akurat wymyslilem rozwiazanie na unikniecie DROP, ale abrdzo niewygodne.
Ustawiamy wlasciciela bazy jako innego uzytkownika, a naszemu nadajemu
prawa do SELECT, UPDATE itp.

Z Union nie moge nic wykombinowac, a przeciez jak mi user wpisze "european
union" to mu nie zmienie (np. lokalizacji) na european u n i o n :)

--
Bartłomiej




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 28-07-2007 00:01

  Bartłomiej Bochiński wrote:
> Dnia Fri, 27 Jul 2007 17:25:06 +0200, hubert depesz lubaczewski napisał(a):
>
>> Dnia 27.07.2007 Bartłomiej Bochiński <adresik@gmail.com> napisał/a:
>>> Można to jakoś zrobić?
>> tego o co prosisz - nie.
>> ale można trywialnie zabezpieczyć się inaczej:
>> odebrać prawa userowi do dostępu do tabel i cały dostęp dać przez
>> wydzielone funkcje/widoki które będą zwracały to co trzeba.
>>
>> ale w/g mnie to jest bzdura.
>>
>> zabezpiecznie przez sql-injection to nie jest jakaś wielka sztuka.
>> stosujesz po prostu placeholdery albo pg_escape_string i po sprawie.
>>
>> depesz
>
> Otoz nie zgodze sie. Samo pg_escape_string nie jest wystarczajace.
>
> Tutaj przykład z MySQLem http://hacking.pl/data/hackme.pdf Nie uzyto
> zadnego średnika, cudzyslowiu itp. Wiadomo, że normalnie kazdy by to
> zrzutowal na inta i po sprawie.

Ale pg_escape_string stosuje się po to, żeby kod SQL nie "wyskoczył" z fiutków.
Jak masz kod: ... = '$zmienna', to jak ją potraktujesz pg_escape_string to już
włamujący sie nic nie poradzi.

--
P.M.




=?iso-8859-2?Q?Bart=B3omiej_Bochi=F1ski?= - 28-07-2007 00:01

  Dnia Fri, 27 Jul 2007 20:08:44 +0200, Paweł Matejski napisał(a):

> Bartłomiej Bochiński wrote:
>> Dnia Fri, 27 Jul 2007 17:25:06 +0200, hubert depesz lubaczewski napisał(a):
>>
>>> Dnia 27.07.2007 Bartłomiej Bochiński <adresik@gmail.com> napisał/a:
>>>> Można to jakoś zrobić?
>>> tego o co prosisz - nie.
>>> ale można trywialnie zabezpieczyć się inaczej:
>>> odebrać prawa userowi do dostępu do tabel i cały dostęp dać przez
>>> wydzielone funkcje/widoki które będą zwracały to co trzeba.
>>>
>>> ale w/g mnie to jest bzdura.
>>>
>>> zabezpiecznie przez sql-injection to nie jest jakaś wielka sztuka.
>>> stosujesz po prostu placeholdery albo pg_escape_string i po sprawie.
>>>
>>> depesz
>>
>> Otoz nie zgodze sie. Samo pg_escape_string nie jest wystarczajace.
>>
>> Tutaj przykład z MySQLem http://hacking.pl/data/hackme.pdf Nie uzyto
>> zadnego średnika, cudzyslowiu itp. Wiadomo, że normalnie kazdy by to
>> zrzutowal na inta i po sprawie.
>
> Ale pg_escape_string stosuje się po to, żeby kod SQL nie "wyskoczył" z fiutków.
> Jak masz kod: ... = '$zmienna', to jak ją potraktujesz pg_escape_string to już
> włamujący sie nic nie poradzi.

$zmienna = admin char(39) or 1=1 --

to faktycznie nie dziala. a na pewno nie ma czegos innego co zastapi
fiutka?

--
Bartłomiej




ethanak - 29-07-2007 00:00

  On 2007-07-27 21:54, Bartłomiej Bochiński wrote:
> [...] a na pewno nie ma czegos innego co zastapi
> fiutka?
>
Wibrator? :)

ethanak
PS. MSPANC
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
standard error codes:
ENOTOBACCO //pipe exhausted




=?iso-8859-2?Q?Bart=B3omiej_Bochi=F1ski?= - 30-07-2007 00:01

  Nie otwieram nowego tematu, ale zapytam o cos nowego tutaj. Czy zmiana
kolumn na inne o trudnych do zgadniecia nazwach jest dobrym pomyslem? Czy
moze to utrudnic atak?

Np. email na email_zgaduj_zgadula to dobry pomysl?

Mam nadzieje, ze nie popadam w paranoje, ale w opisach atakow zawsze
widuje, ze trzeba zgadnac nazwe kolumny.

--
Bartłomiej
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lunadance.htw.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com