![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 292 Pomógł: 0 Dołączył: 10.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pobierając dane poprzez mysql_fetch_assoc zapytaniem: mysql_query('SELECT * FROM tabela where id = "5"') or die(mysql_error); Pole id 5 jest pobierane poprzez $_GET Jeśli go nie przefiltruje to jest jakieś niebezpieczeństwo takie, że po wpisaniu jakiś poleceń zamiast "5" może zapytanie przerobić się w update albo delete ? Jak to wygląda ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Miałem na myśli jedną metodę walidacji, czyli gdy spodziewam się, że identyfikator ma być liczbą sprawdzam go funkcją is_numeric bądź wyrażeniem regularnym, a w przypadku, gdy identyfikator jest stringiem sprawdzam przy pomocy regular expressions.
Powyższe sprawdzenie wykonuje bez informowania użytkownika o tym czy wartość przeszła walidację czy nie wyświetlając jedynie ostateczny komunikat, że nie znaleziono artykułu. Dwa zapytania właśnie poto, żeby w przypadku wartości nieliczbowej uniemożliwić sql_injection. SELECT count(*) nieznacznie obciąża bazę, więc aplikacja ponosi niewielki koszt wydajności w porównaniu do zwiększenia bezpieczeństwa. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 10:37 |