![]() |
![]() ![]() |
![]() |
![]()
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/
|
|
|
![]()
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ą. |
|
|
![]()
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 ' " |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.02.2004 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
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:
-------------------- pauluZ
|
|
|
![]()
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
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:48 |