konto usunięte
Rafał
Kowalewski
IT Director, F3
Group
Temat: Jak bronić się przed atakami SQL Injection?
SELECT user, password FROM users WHERE user = '".htmlspecialchars($_POST['user'], ENT_QUOTES)."' AND password = '".htmlspecialchars($_POST['password], ENT_QUOTES)."'powinno wystarczyćRafał Kowalewski edytował(a) ten post dnia 19.01.09 o godzinie 12:25
Maciej Marczuk Software Engineer
Arvind
Juneja
Współtwórca @
Fangol.pl | Blogger
@ Fitback.pl
Temat: Jak bronić się przed atakami SQL Injection?
http://php-ids.org/ albo to...
Wojciech
Sznapka
CTO @ STS Zakłady
Bukmacherskie
Temat: Jak bronić się przed atakami SQL Injection?
ty chyba faktycznie dostałeś bana na googlehttp://www.google.pl/search?q=how+to+prevent+sql+injec...
albo nie chce ci sie szukać...
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
dobrze kojarze, ze htmlspecialchars nie dziala z latin2?konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Wojciech Sznapka:
ty chyba faktycznie dostałeś bana na google
http://www.google.pl/search?q=how+to+prevent+sql+injec...
albo nie chce ci sie szukać...
Wiesz... wolę zapytać osoby które w tym siedzą, niż wejść na byle jaką stronkę i się zastanawiać potem czy to aby napewno działa czy nie.
Dzięki.
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Bartłomiej S.:
wolę zapytać osoby które w tym siedzą, niż wejść na byle jaką stronkę i się zastanawiać potem czy to aby napewno działa czy nie.
Bartku, zle podejscie. poczytaj netykiete (edit: ok, moze nie netykiete, a prawa grup dyskusyjnych).
NAJPIERW szukasz, potem probujesz robic. POZNIEJ pytasz pokazujac analitycznie co udalo Ci sie osiagnac i gdzie poległeś.Wojciech Zbigniew Piotrowicz edytował(a) ten post dnia 19.01.09 o godzinie 12:58
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Bartłomiej S.:
Jak w tytule. Wiem tylko, że przed liczbami (int). Ale czy to w zupełności wystarcza? A co ze stringami?
Ja staram się większość logiki 'pchać' do bazy danych (procedury, funkcje i wyzwalacze o ile pozwala na nie hosting). Dzięki temu escape'owanie następuje na poziomie wywoływania procedury. Dodatkowo wewnątrz zapytań można pokusić się o użycie funkcji QUOTE.
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Ja poprę post Maćka - zainteresuj się PDO, a zwłaszcza poczytaj o tzw. prepared statements, chociażby: http://pl.php.net/manual/pl/pdostatement.execute.phpkonto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Rafał Kowalewski:
SELECT user, password FROM users WHERE user = '".htmlspecialchars($_POST['user'], ENT_QUOTES)."' AND password = '".htmlspecialchars($_POST['password], ENT_QUOTES)."'
Owszem htmlspecialchars ustrzeże lecz można jeszcze pomyśleć o backslash pomiędzy cudzysłowy/apostrofy
Rafał Korszuń co-owner @ Kleder
Temat: Jak bronić się przed atakami SQL Injection?
Przed tym atakiem nie obronisz się stosując htmlspecialchars() - ta funkcja się bardziej przydaje przy obronie przed XSS:)
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Uzyj jakiejkolwiek biblioteki w ktorej bedziesz mogl wysylac zapytania z parametrami... nie chcesz miec sql injection - zasada nr 1: NIGDY ale to NIGDY nie kleimy zapytan (tasma klejaca, spinaczami, . ani +).Lektura zeby przygotowac sie na lekcje:
http://www.unixwiz.net/techtips/sql-injection.html
Rafał Korszuń co-owner @ Kleder
Temat: Jak bronić się przed atakami SQL Injection?
a w sumie nawet nie zawsze przed xss tu masz przykład:http://stackoverflow.com/questions/110575/do-htmlspeci...
Michał Ławicki dostawca zadowolenia
Temat: Jak bronić się przed atakami SQL Injection?
filtrowac, walidowac, sprawdzac, kontrolowac, filtrowac ... :) a poza tym *_real_escape_string + http://www.beldzio.com/konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Sql injection zależy od bazy, dla mssql wystarczy:- dla stringów zamienić ' na ''
- każdego spodziewanego numerka zcastować do int i z powrotem do string
dla mysql:
- dla stringów zamienić \' na \\' i ' na ''
- dla numerków jak wyżej
Najlepiej używaj frameworka do zapytań (może ORM?) i wtedy on za Ciebie sprawę załatwi najlepiej.
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Rafał Ziółkowski:
Uzyj jakiejkolwiek biblioteki w ktorej bedziesz mogl wysylac zapytania z parametrami... nie chcesz miec sql injection - zasada nr 1: NIGDY ale to NIGDY nie kleimy zapytan (tasma klejaca, spinaczami, . ani +).
Też się pod tym podpiszę.
Nie żadne real_escape_string, real_real_escape_string, ultimate_real_escape_string i tym podobne wynalazki. To jest ZŁA droga.
Do zapytań SQLowych stosuje się zawsze parametry. Nie wiem czemu tylko programiści PHP o nich nie słyszeli.
konto usunięte
Temat: Jak bronić się przed atakami SQL Injection?
Dawać odpowiednie uprawnienia użytkownikom bazy danych1. jak ma wybierać z bazy to po grzyba ma ten sam użytkownik mieć uprawnienie do dodawania czegoś do bazy, bądź jakiekolwiek inne uprawnienia
2. Błędy nie wyświetlać jawnie, można je w prosty sposób wyeksportować do pliku i sobie potem przeglądać
3. Nie używać gotowców, struktura bazy danych jest znana nie tylko tobie ale i hackerom
4. Sprawdzać wpisywane przez użytkownika dane i ewentualnie filtrować znaki które się tobie nie podobają (brak spacji brak słów jak or and itp itd)
preg_match() - sprawdzanie czy nie użyto niedozwolonych znaków
str_replace() - dobrze się nadaje do tego aby wyciąć nie porządne struktury w "zapytaniu"
5. Zmiana na czas połączenia użytkownika delimiter'a ze standardowego ; na np tu_jest_koniec albo // do wyboru do koloru (nie jest wstanie zakończyć aktualnego zapytania i podesłać nowe)
Wiadomo są to dodatkowe utrudnienia ale nie tylko dla nas(programisty) ale i dla hackerów
Jakub L. Programista
Podobne tematy
-
Programiści WWW » Jak się bronić przed "procentami" ? -
-
Programiści WWW » Jak "pozbyć się" subdomeny przy użyciu redirect 301? -
-
Programiści WWW » mysql_real_escape_string i get_magic_quotes_gpc() - ataki... -
-
Programiści WWW » jak się nazywa takie stanowisko? -
-
Programiści WWW » [Blogger] Jak dobrać się do tego iframe-a? -
-
Programiści WWW » Jak się robi zumi? -
-
Programiści WWW » Czy znajdą się idealiści, skłonni zaprojektować nowe... -
-
Programiści WWW » Czy istnieje jakiś framework PHP jak Django -
-
Programiści WWW » Prywatne wiadomości w portalu. Jak zaprojektować? -
-
Programiści WWW » [MySql/PHP] Jak zapisać i wyświetlić ułamek? -
Następna dyskusja: