Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie czy użytkownik użył jakiegoś skryptu
Soker
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.08.2008

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


Siemka, mam taki problem. Mianowicie zastanawiam się jak podczas rejestracji użytkownika wyświetlić błąd który mówił by że dany użytkownik wpisał jakiś kod html php czy tez java. Potrafię zamienić wszystkie dane podane przez użytkownika na litery i cyfry ale wolałbym uświadomić użytkownika że użył niepoprawnych znaków. Mógłby mi ktoś pomóc ze znalezieniem odpowiedniej funkcji ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Bosslog
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 3
Dołączył: 8.09.2009

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


A niby jak byś chciał sprawdzać czy coś jest kodem? Przecież kod to też tekst. Możesz jedynie sprawdzać czy zawiera znaki np. apostrofy, średniki.. lub słowa typu "if" "function" "array", ale mimo to nie widzę sensu, żeby komplikować sobie przez to życie smile.gif
Go to the top of the page
+Quote Post
Soker
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.08.2008

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


tak o to mi chodzi, jak to nie widzisz sensu questionmark.gif przykładowo użytkownik zakłada konto i przypadkowo wcisną mu się przycisk ";", nie sprawdzając tego klika wyślij i poszło, usunęło ten znak i od razu nick czy też hasło jest inne niż użytkownik chciał. Nie mogąc się zalogować tworzy on następne konto zaśmiecając nam bazę mysql...
Go to the top of the page
+Quote Post
Bosslog
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 3
Dołączył: 8.09.2009

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


Nawet jeśli użytkownik przypadkowo wcisnął inną literkę (nie tylko średnik) i wyśle zamiast "Bartek" - "Bartekl" i też nie będzie mógł się zalogować smile.gif poza tym od tego są funkcje (np. htmlspecialchars), które przed wyświetleniem neutralizują groźny kod, czy to HTML czy JS, oraz funkcje chroniące przed atakami na bazę danych (mysqlowe escape).

Wracają do loginów przy rejestracji. Sam miałem z tym dylemat i doszedłem do wniosku, że najlepiej, gdy użytkownik może używać tylko znaków alfanumerycznych i ewentualnie znaku "_". Jeśli użytkownik wpisze inne znaki, formularz poinformuje go błędem. Sprawdzić to można funkcją np. ctype_alnum smile.gif
Go to the top of the page
+Quote Post
Soker
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.08.2008

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


no dobra elegancko przykładowo mam dany kod:

  1. $a = "asfdashb_21";
  2. if(ctype_alnum($a))
  3. {
  4. echo "good";
  5. }
  6. else
  7. {
  8. echo "bad";
  9. }


I powiedzmy że chcę pozwolić na dodanie znaku _ ? próbowałem ctype_alnum($a, '_') ale nie działa tongue.gif
Go to the top of the page
+Quote Post
Bosslog
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 3
Dołączył: 8.09.2009

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


Można to zrobić tak:

  1. $login = 'xyz_21';
  2. $dozwolone = array('_');
  3.  
  4. if(ctype_alnum(str_replace($dozwolone, '', $login)))
  5. echo 'Ok';
  6. else
  7. echo 'Wpisano niedozwolone znaki';


Go to the top of the page
+Quote Post
flashdev
post
Post #7





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


  1. if(preg_match('/^[a-z0-9_]+/i', $a))


--------------------
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 Aktualny czas: 20.08.2025 - 10:13