Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sql injection, mssql
fiszol
post
Post #1





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

Ostrzeżenie: (0%)
-----


Witam, całe sql injection to dla mnie nowość, jednak zdażyło mi się już przez to oberwać (a raczej mojej bazie), czy istnieje jakiś skuteczny i prosty sposób któy pozwoli się zabezpieczyć przed tym świństwem ?

korzystam z mssql 2000 enterprise edition i php 4.3 .

z góry dzięki za pomoc.

dodam że w manualu php nie znalazłem czegoś takiego jak mssql_escape_string ;p

Ten post edytował fiszol 19.12.2004, 14:53:57


--------------------
\o/
Go to the top of the page
+Quote Post
Jabol
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


po 1. Trzeba mądrze pisać kod.
po 2. Jeżeli nie ma takiej funkcji to możesz poczytać dokumentacje, zobaczyć, które znaki są groźne i sam napisać sobię funkcję je osłabiającą.
Go to the top of the page
+Quote Post
Adam Boduch
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.09.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Przede wszystkim nalezy uwazac na dane pochodzace od usera, walidowac informacje pochodzace nawet z ciastka. Np. jezeli odczekujesz iz klucz 'id' z tablicy $_GET ma byc typu int korzystaj z rzutowania - np.

$post_id = (int)$_GET['id'];

albo:

$post_id = intval($_GET['id']);

W razie gdy id bedzie lancuchem rzutowanie przypisze do $post_id - 0.

Jezeli mamy do czynienia z lancuchami, nalezy parsowac dane, usuwajac znaki -- %20 ' "
Go to the top of the page
+Quote Post
kociou1
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 13.02.2004
Skąd: warszawa

Ostrzeżenie: (0%)
-----


http://www.computerworld.pl/artykuly/31505.html
Go to the top of the page
+Quote Post
pauluZ
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Taaak....
Podsumowując:

Cytat
Aby zmniejszyć ryzyko ataku typu SQL injection, warto przestrzegać kilku zasad:
  • Dane pochodzące z zewnątrz aplikacji powinny być filtrowane
  • Przy nadawaniu uprawnień należy stosować zasadę najmniejszych przywilejów
  • Precyzyjne określenie funkcji dostępnych użytkownikowi za pośrednictwem interfejsu
  • W środowisku aplikacji nie powinno być żadnych zbędnych do jej działania plików


--------------------
pauluZ
Go to the top of the page
+Quote Post
emitra
post
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 23.06.2002
Skąd: Opole

Ostrzeżenie: (0%)
-----


Proboje poznac zasade działania sql injection.. dzieki temu latwiej pozniej unikac pewnych bledow.

Mam kod:
xxx.php
  1. <?
  2. include &#092;"otwieracz.php\";//laczymy sie z baza
  3. $query = &#092;"SELECT * from test WHERE (x = '$x') \";
  4. print &#092;"$query<BR>\";
  5. mysql_query ($query); 
  6. ?>


teraz w przegladarce podaje: http://localhost/sqlinjection/xxx.php?x=Imie

no i wszystko ok print wywala mi na stronke:

SELECT * from test WHERE (x = 'Imie')

Teraz chcialem przetestowac jedno z mozliwosci sql injection i zmusic by skrypt skasowal tabele o nazwie "tabela" w tej bazie danych pisze wiec taki adres w przegladarce:
http://localhost/sqlinjection/xxx.php?x=imie'); DELETE FROM tablica;--
http://localhost/sqlinjection/xxx.php?x=imie'); DELETE%20FROM%20tabela;--

w wyniku czego print wywala mi na ekran:

SELECT * from test WHERE (x = 'imie'); DELETE FROM tablica;--')

i wg materialow ktore czytalem powinno to poswodowac skasowanie zawartosci tablicy "tablica" niestety jednak tablica jest niezmieniona...

Gdy to co mi wyswietlil print wykonam recznie w bazie danych w mysqlu to bardzo sie tnie maszyna moja procesora uzycie rosnei znacznie na proces php.exe ;]

Natomiast gdy zastapie -- hashem # w bazie wszystko wykonuej sie jak nalezy.

I teraz pytanie co robie zle bo sadze ze taki prosty skrypt napewno jest podatny na sql injection...

Pozdrawiam cieplutko
Emitra


--------------------
Eä Eru i estaina ná Ilúvatar Ardassë, ar ónes minyavë Ainur i ner i híni sanweryo, ar ner yo së nó ilúvë né ontaina. Ar ten quentes, antala ten lammar lindalëo, ar lirnentë, ar së né alassëa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 17:48