←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Boty reklamujące


Najlepsza odpowiedź GwynBleidD 09.08.2015 11:25

Drobna analiza wyrażenia regularnego, umieszczonego w w/w temacie:

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

Widać, że tworzył go ktoś kto nie zna się na wyrażeniach regularnych, bo po 1. można go zapisać prościej:

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

a dwa: mały przykład tego, co ten regex złapie:

12 groszy za 3 modele w wersji 2 wiec naprawdę sie oplaca 1!!!

Dlaczego? bo łapie:

dowolną cyfrę, po niej dowolny ciąg znaków, po niej znak z dość szerokiej grupy, następnie znów dowolny ciąg znaków, znów cyfrę... i tak 4 razy (znaczy do złapania 4 cyr). Jaki to ma sens? kto umieszcza IP w ten sposób?

 

A czego nie złapie?

5X12X23X1

Co już może być zinterpretowane jako adres IP.

 

Sens ma łapanie: ciągu cyfr (max do 3ch, adres IP nie może posiadać więcej w 1 segmencie)) poprzedzonego max 3 dowolnymi znakami (po wpisaniu większej ilości znaków nie wygląda to już jak adres IP) i tak 4 razy, gdzie po ostatniej cyfrze już nie łapiemy dowolnych 3ch znaków.

 

Regex:

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

(zapisane bez użycia notacji {1,3} bo nie wiem, czy amxx to obsługuje)

 

Tutaj już się trzeba natrudzić, żeby znaleźć normalnie wyglądającą wypowiedź, która zostanie wyłapana. I nie znalazłem niczego, co by wyglądało jak adres IP chociaż troszkę, a by nie było łapane.

 

 

Przejdź do postu

  • +
  • -
WeBsteR - zdjęcie WeBsteR 08.08.2015

Witam, od jakiegoś czasu monotonnie atakują moje serwery boty reklamowe i chciałbym wyjść im na przeciw, dostają notorycznie bana, lecz po jakimś czasie znów powracają w zdwojonej sile. Widziałem na forum, iż potrzeba:

1.   http://darkgl.pl/201...d-np-ct-shield/

2.   http://amxx.pl/topic...e-boty-ip-spam/

 

Chciałbym się zapytać, jak odpowiednio skonfigurować te pluginy, aby nie przepuściły żadnej reklamy, bota, graczy z sztucznie generowanym cid itd.

 

Odpowiedz

  • +
  • -
tytusek - zdjęcie tytusek 08.08.2015

pobierz plugin no_ip_all_chars i zainstaluj na reklamy to pomoże 

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 08.08.2015

A o tak.

Odpowiedz

  • +
  • -
WeBsteR - zdjęcie WeBsteR 08.08.2015

Nie wiem dlaczego, ale wcześniej przegapiłem ten post, dzięki +.

Odpowiedz

  • +
  • -
Najlepsza odpowiedź GwynBleidD - zdjęcie GwynBleidD 09.08.2015

Drobna analiza wyrażenia regularnego, umieszczonego w w/w temacie:

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

Widać, że tworzył go ktoś kto nie zna się na wyrażeniach regularnych, bo po 1. można go zapisać prościej:

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

a dwa: mały przykład tego, co ten regex złapie:

12 groszy za 3 modele w wersji 2 wiec naprawdę sie oplaca 1!!!

Dlaczego? bo łapie:

dowolną cyfrę, po niej dowolny ciąg znaków, po niej znak z dość szerokiej grupy, następnie znów dowolny ciąg znaków, znów cyfrę... i tak 4 razy (znaczy do złapania 4 cyr). Jaki to ma sens? kto umieszcza IP w ten sposób?

 

A czego nie złapie?

5X12X23X1

Co już może być zinterpretowane jako adres IP.

 

Sens ma łapanie: ciągu cyfr (max do 3ch, adres IP nie może posiadać więcej w 1 segmencie)) poprzedzonego max 3 dowolnymi znakami (po wpisaniu większej ilości znaków nie wygląda to już jak adres IP) i tak 4 razy, gdzie po ostatniej cyfrze już nie łapiemy dowolnych 3ch znaków.

 

Regex:

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

(zapisane bez użycia notacji {1,3} bo nie wiem, czy amxx to obsługuje)

 

Tutaj już się trzeba natrudzić, żeby znaleźć normalnie wyglądającą wypowiedź, która zostanie wyłapana. I nie znalazłem niczego, co by wyglądało jak adres IP chociaż troszkę, a by nie było łapane.

 

 


GwynBleidD (09.08.2015 11:32):
Dodatkowo fakt: Twój regex wykonuje aż 181 porównań żeby sprawdzić ciąg znaków, mój wykonuje 48, czyli znacznie mniej. Po użyciu:

[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]

mamy tylko 19 porównań, prawie 10 razy mniej! Ale tego regexa może amxx nie obsłużyć, proszę sprawdzić przed użyciem.
Odpowiedz

  • +
  • -
DR HOUSE - zdjęcie DR HOUSE 09.08.2015

Czyli w tamtym temacie powinniśmy zamienić to

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

Na to:

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

? Czy na które bo już się zgubiłem ;d

Odpowiedz

  • +
  • -
WeBsteR - zdjęcie WeBsteR 09.08.2015

Drobna analiza wyrażenia regularnego, umieszczonego w w/w temacie:

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

Widać, że tworzył go ktoś kto nie zna się na wyrażeniach regularnych, bo po 1. można go zapisać prościej:

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

a dwa: mały przykład tego, co ten regex złapie:

12 groszy za 3 modele w wersji 2 wiec naprawdę sie oplaca 1!!!

Dlaczego? bo łapie:

dowolną cyfrę, po niej dowolny ciąg znaków, po niej znak z dość szerokiej grupy, następnie znów dowolny ciąg znaków, znów cyfrę... i tak 4 razy (znaczy do złapania 4 cyr). Jaki to ma sens? kto umieszcza IP w ten sposób?

 

A czego nie złapie?

5X12X23X1

Co już może być zinterpretowane jako adres IP.

 

Sens ma łapanie: ciągu cyfr (max do 3ch, adres IP nie może posiadać więcej w 1 segmencie)) poprzedzonego max 3 dowolnymi znakami (po wpisaniu większej ilości znaków nie wygląda to już jak adres IP) i tak 4 razy, gdzie po ostatniej cyfrze już nie łapiemy dowolnych 3ch znaków.

 

Regex:

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

(zapisane bez użycia notacji {1,3} bo nie wiem, czy amxx to obsługuje)

 

Tutaj już się trzeba natrudzić, żeby znaleźć normalnie wyglądającą wypowiedź, która zostanie wyłapana. I nie znalazłem niczego, co by wyglądało jak adres IP chociaż troszkę, a by nie było łapane.

Dzięki, super to opisałeś :wub: :wub:

Lecz, który z powyższych Regex będzie poprawny ?

 

Powinienem zamienić to:

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

na

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

czy na

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

czy może na

[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]

?

Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 09.08.2015

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

 i

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

to dokładnie to samo, tylko inaczej zapisane.

 

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

i

[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]

również, jednak 2 wersji AMXX może nie obsłużyć, wtedy nie będzie łapało żadnego IP albo będzie wysypywało błędy. Jednak jest wydajniejszą wersją, więc musicie sprawdzić czy zadziała czy nie, jeśli zadziała to użyć, jeśli nie to 1 wersji która zadziała na 100%.

 

Odpowiedz

  • +
  • -
WeBsteR - zdjęcie WeBsteR 09.08.2015

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

 i

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

to dokładnie to samo, tylko inaczej zapisane.

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

i

[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]

również, jednak 2 wersji AMXX może nie obsłużyć, wtedy nie będzie łapało żadnego IP albo będzie wysypywało błędy. Jednak jest wydajniejszą wersją, więc musicie sprawdzić czy zadziała czy nie, jeśli zadziała to użyć, jeśli nie to 1 wersji która zadziała na 100%.

 

O to mi chodziło, należy się duży +! idę testować :lol:

Odpowiedz

  • +
  • -
DR HOUSE - zdjęcie DR HOUSE 09.08.2015

Serdeczne dzięki, plusik dodany i już poprawiam plugin na serwerze :)

Odpowiedz

  • +
  • -
WeBsteR - zdjęcie WeBsteR 10.08.2015

Wersja:

[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]

Bardzo dobrze działa, testowane przy full serwerze.
Bardzo dziękuje za pomoc oraz zrobienie nowego Regex.

Pozdrawiam.

 

Odpowiedz