Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zabezpieczenie danych przekazywanych w linku
Lethys
post 17.11.2011, 16:09:24
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Witam,

W moim skrypcie rejestracji przekazuje dane referencyjne. Zebym mogl sobie pozniej zobaczyc z jakiego źródła user się zarejestrował.

Wygląda to tak:

register.php?ref=forumphp

Chciałbym zabezpieczyć aby użytkownicy nie mogli wpisywać byle czego w link.

Próbowałem zrobić to na 2 sposoby ale żaden nie działa:


  1.  
  2. //pierwszy
  3.  
  4. if(!preg_match('/^[a-zA-z0-9]{1,10}$/D',$_GET['ref']) and $_GET['ref'] != NULL){
  5. $problem = TRUE;
  6. echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w przekierowaniu do rejestracji.<br><br>Wróć do poprzedniej strony i zarejestruj się z właściwego linku.</h2></p>");
  7. }
  8.  
  9. //drugi
  10.  
  11. if(!preg_match('/^[a-zA-z0-9]{1,10}$/D',$ref) and $ref != NULL){
  12. $problem = TRUE;
  13. echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w przekierowaniu do rejestracji.<br><br>Wróć do poprzedniej strony i zarejestruj się z właściwego linku.</h2></p>");
  14. }


Jak to zrobić?


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
Pawel_W
post 17.11.2011, 22:37:41
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


napisz najpierw jak chcesz zabezpieczyć smile.gif
Go to the top of the page
+Quote Post
Lethys
post 18.11.2011, 13:55:32
Post #3





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Tak jak w moich kombinowanych przykładach.

Chcę aby w register.php?ref=tojestmojref

można było wpisaywać tylko litery i cyfry.

Ten post edytował Lethys 18.11.2011, 13:55:51


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
zamper
post 18.11.2011, 17:11:36
Post #4





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


A po co użytkownik ma coś wpisywać w adresie ?
Jeżeli Cię dobrze zrozumiałem to masz kilka formularzy rejestracyjnych i chcesz wiedzieć z którego user się zarejestrował.
Jeżeli tak to:
Form1:
  1. ...<input type="hidden" name="ref" value="zrodlo1" />

Form2:
  1. ...<input type="hidden" name="ref" value="zrodlo2" />

Form3:
  1. ...<input type="hidden" name="ref" value="zrodlo3" />


Później się odwołujesz za pomocą:
$_GET['ref']
$_POST['ref']
$_REQUEST['ref'] <-- Tego nie polecam

Możesz to też zrobić w sesji, ale wg mnie wyżej opisany sposób jest lepszy.

Ten post edytował zamper 18.11.2011, 19:28:08


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
Lethys
post 19.11.2011, 11:31:06
Post #5





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Użytkownik nie ma nic wpisywać do adresu. To jest zrobione tylko i wyłącznie do mojego użytku, abym wiedział ile osób zarejestrowało się przykładowo z katalogu stron.

Daje tam link: ....register.php?ref=katalogstron

i w ten sposób każdy kto się zarejestruje z tego adresu będzie miał dodane w bazie ref jako katalogstron a ja będę mógł zliczyć te osoby i ocenić efektywność.


Chcę to zabezpieczyć aby jakiś pro user nie zaczął się bawić tym adresem i nie zrobił mi przez to sql injection.


Tak jak już pisałem, próbowałem na dwa sposoby ale coś nie chcą działać i przepuszczają mi np. register.php?ref=%^$<>":

Moje sposoby:

  1.  
  2. //pierwszy
  3.  
  4. if(!preg_match('/^[a-zA-z0-9]{1,10}$/D',$_GET['ref']) and $_GET['ref'] != NULL){
  5. $problem = TRUE;
  6. echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w przekierowaniu do rejestracji.<br><br>Wróć do poprzedniej strony i zarejestruj się z właściwego linku.</h2></p>");
  7. }
  8.  
  9. //drugi
  10.  
  11. if(!preg_match('/^[a-zA-z0-9]{1,10}$/D',$ref) and $ref != NULL){
  12. $problem = TRUE;
  13. echo("<p id='uwaga'><h2>Użyto niedozwolonych znaków w przekierowaniu do rejestracji.<br><br>Wróć do poprzedniej strony i zarejestruj się z właściwego linku.</h2></p>");
  14. }





--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
xxdrago
post 19.11.2011, 15:19:30
Post #6





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


No to:
http://php.net/manual/pl/function.mysql-re...cape-string.php

Jeżeli dobrze zrozumiałem.


--------------------
GG: 10972302 :)
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:28