Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Czy da się przesłać w zmiennej get Polski litery (ą)itp
Forum PHP.pl > Forum > PHP
jagwie
Witam Potrzebuje aby w zmiennej z adresu strony przesłać Polskie litery.
Do przekierowania używam pliku .htaccess przekierowanie wygląda
[PHP] pobierz, plaintext
  1. RewriteRule ^-/([a-z]+)/$ index.php?dzial=miasto&miasto=$1 [L]
  2. RewriteRule ^-/([a-z]+)/([0-9]+)/$ index.php?dzial=miasto&miasto=$1&strona=$2 [L]
[PHP] pobierz, plaintext
Wstawiałem również (.*) lecz też krzaczy
ucho
Kod
([^/]+)
albo uzupełnij
Kod
([a-ząę]+)
o wszystkie literki
korro
Raczej powinieneś przesyłać id miasta, zamiast pełnej nazwy.
jagwie
Id miasta niema w tabli i dlatego wolałbym przekazać całą nazwę
Jeszcze pytanie czy nie rodzi to jakiegoś zagrożenia jeśli chodzi o atak.










-----------------------------
Jeśli szukasz noclegu to wejdź
korro
Rodzi. Zastosuj: mysql_real_escape_string
jagwie
A jeśli odwojuje się do id czy to zagrożenie znika czy nie

Poniżej podaje plik zapytania czy przy takiej budowie jest możliwość włamania
Kod php wygląd
  1. [url="http://./Pobierz-Plik-175368.html"]pobierz[/url], [url="http://Plaintext-175368.html"]plaintext[/url] [list=1]
  2. [*]$miasto = $_GET['miasto']; //miasto zamiana
  3. [*]$zapytanie = [url="http://www.php.net/mysql_query"]mysql_query[/url]("SELECT ogloszen_na_strone FROM ustawienia LIMIT 1");
  4. [*]$wynik = [url="http://www.php.net/mysql_fetch_array"]mysql_fetch_array[/url]($zapytanie);
  5. [*]$ogloszen_na_strone = $wynik['oglosz'];
  6. [*]
  7. [*]if([url="http://www.php.net/isset"]isset[/url]($_GET['strona']))
  8. [*] $strona = $_GET['strona'];
  9. [*]else
  10. [*] $strona = 0;
  11. [*]
  12. [*]$zapytanie = [url="http://www.php.net/mysql_query"]mysql_query[/url]("SELECT i FROM o WHERE miasto = '$miasto' AND aktywna = 1");
  13. [*]$ile = [url="http://www.php.net/mysql_num_rows"]mysql_num_rows[/url]($zapytanie);
  14. [*]
  15. [*]$zapytanie = [url="http://www.php.net/mysql_query"]mysql_query[/url]("SELECT * FROM o WHERE miasto = '$miasto' AND aktywna = 1 ORDER by id DESC LIMIT ".($strona*$oglosz).",$oglosz");
  16. [*]$stron = $ile / $oglosz;
  17. [*]
  18. [*]
  19. [*]
  20. [*]if([url="http://www.php.net/mysql_num_rows"]mysql_num_rows[/url]($zapytanie) > 0)
  21. [*] include_once("plik.inc.php");
  22. [*]else
  23. [/list]
pobierz, plaintext
korro
Rzuć okiem na przykład #2 z podsyłanej już strony http://pl.php.net/mysql_real_escape_string
zobaczysz na czym polega zagrożenie.
jagwie
Nie wiem czy dobrze to rozumie .
Przez zmienną da rady przesłać cały kod php
korro
Chodzi o to, że np. pytasz bazę:
  1. SELECT * FROM users WHERE id = '{$_POST['id']}' AND pass = '{$_POST['pass']}'

jeśli ktoś poda id = bruce i pass = lee, zapytanie będzie wyglądało tak:
  1. SELECT * FROM users WHERE id = 'bruce' AND pass = 'lee'

ale, jeśli poda id = bruce i pass = ' or '1'='1, zapytanie będzie wyglądało
  1. SELECT * FROM users WHERE id = 'bruce' AND pass = '' OR '1'='1'

wtedy burce będzie zalogowany bez znajomości hasła.
jagwie
Takie coś rozumie
Ale czy konkretnie w moim zapytaniu wyśle przez tą zmienną jakiś wyraz to najwyżej dowie się że niema oferty w bazie.
Chyba są jakieś inne możliwości .
A jeśli zmienna prowadzi do zapytania które logują to na pewno jest niebezpieczne.

Prosiłbym o odpowiedz
korro
Albo usunie Twoje wszystkie dane.
Po prosu każdą daną od użytkownika przepuść przez wspomnianą funkcję.
Np:
  1. $zapytanie = mysql_query("SELECT id FROM oferty WHERE miasto = '".mysql_real_escape_string($miasto)."' AND aktywna = 1");
jagwie
Rozumie już dzięki za wytłumaczenie to może być duży problem
Czyli najlepiej utworzyć id dla każdego miasta i odwoływać się do niego bo rozumie że liczbami nie da rady narobić bajzlu w bazie .
R4D3K
Cytat
Czyli najlepiej utworzyć id dla każdego miasta i odwoływać się do niego bo rozumie że liczbami nie da rady narobić bajzlu w bazie .

Pewnie że rodzi o UNION SELECT nie słyszał tongue.gif?
marcio
Cytat(R4D3K @ 15.12.2009, 11:41:56 ) *
Pewnie że rodzi o UNION SELECT nie słyszał tongue.gif ?

NO to wtedy rzutuje sie na (int) i po wtokach smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.