Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Blokada użytkownika
deredas
post
Post #1





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

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


Witam,

chciałbym zaimplementować metodę która jest używana na czatach np. interii. Otóż jak admin zbanuje kogoś to nie można wejść na stronę czatu przez jakiś czas. Nie pomaga to że ma się neostradę i zresetuje się router - robiłem sprawdzałem i mimo iż ma się za chwilę przydzielony inny adres IP to na stronę nie da rady wejść.

W związku z tym chciałem zapytać czy jest taki skrypt który by podobną funkcjonalność oferował ? Pod swoją stronę mam podpięte google analytics, ale tam nie ma podanego konkretnego adresu IP. Choć czytałem, że można go przekazać jako zdefiniowany parametr. Jeśli nie adres IP to może adres MAC komputera tak jak to ma miejsce przy obecnych rozwiązaniach w grach komputerowych on-line.


Pozdrawiam.
Go to the top of the page
+Quote Post
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Było wiele razy, nie da się zbanować użytkownika 'na stałe'.
Jedyne metody to IP + ciasteczko w przeglądarce.
Skoro resetowałeś router, wystarczyło jeszcze wyczyścić ciasteczka w przeglądarce lub odpalić inną.
MAC da się zmienić, jak pobrać to już nie wiem, ale nie warto się trudzić.

Ten post edytował Michael2318 18.03.2013, 14:50:12
Go to the top of the page
+Quote Post
_Borys_
post
Post #3





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


Takie czaty jak na interii są we flashu albo javie a więc cookie flashowe + standardowe zabezpieczenia w przeglądarce oraz IP.
O javie się nie wypowiadam ale pewnie jeszcze więcej możliwości.
Go to the top of the page
+Quote Post
deredas
post
Post #4





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

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


Jak pobrać MAC - znalazłem tutaj:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  6. <meta name="vs_targetSchema" content="http://schemas.
  7. microsoft.com/intellisense/ie5">
  8. <script id="clientEventHandlersJS" language="javascript">
  9. <!--
  10.  
  11. function Button1_onclick() {
  12. var locator = new ActiveXObject
  13. "WbemScripting.SWbemLocator");
  14. var service = locator.ConnectServer(".");
  15. var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
  16. var e = new Enumerator (properties);
  17. document.write("<table border=1>");
  18. dispHeading();
  19. for (;!e.atEnd();e.moveNext ())
  20. {
  21. var p = e.item ();
  22. document.write("<tr>");
  23. document.write("<td>" + p.Caption + "</td>");
  24. document.write("<td>" + p.IPFilterSecurityEnabled + "</td>");
  25. document.write("<td>" + p.IPPortSecurityEnabled + "</td>");
  26. document.write("<td>" + p.IPXAddress + "</td>");
  27. document.write("<td>" + p.IPXEnabled + "</td>");
  28. document.write("<td>" + p.IPXNetworkNumber + "</td>");
  29. document.write("<td>" + p.MACAddress + "</td>");
  30. document.write("<td>" + p.WINSPrimaryServer + "</td>");
  31. document.write("<td>" + p.WINSSecondaryServer + "</td>");
  32. document.write("</tr>");
  33. }
  34. document.write("</table>");
  35. }
  36.  
  37. function dispHeading()
  38. {
  39. document.write("<thead>");
  40. document.write("<td>Caption</td>");
  41. document.write("<td>IPFilterSecurityEnabled</td>");
  42. document.write("<td>IPPortSecurityEnabled</td>");
  43. document.write("<td>IPXAddress</td>");
  44. document.write("<td>IPXEnabled</td>");
  45. document.write("<td>IPXNetworkNumber</td>");
  46. document.write("<td>MACAddress</td>");
  47. document.write("<td>WINSPrimaryServer</td>");
  48. document.write("<td>WINSSecondaryServer</td>");
  49. document.write("</thead>");
  50. }
  51.  
  52. //-->
  53. </script>
  54. </head>
  55. <body>
  56. <INPUT id="Button1" type="button" value="Button"
  57. name="Button1" language="javascript" onclick="return Button1_onclick()">
  58. </body>
  59. </html>


Ten post edytował deredas 18.03.2013, 17:31:13
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


deredas i co w zawiązku z tym kodem?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
deredas
post
Post #6





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

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


Ta funkcja pobiera adres MAC - mam rację ?

Jeśli pobiera to można sobie zapisać w pliku wszystkie adresy MAC urządzeń które odwiedzają stronę - mam racje ?

Przeciętny użytkownik który nie wie co to adres MAC nie będzie szukał sposobów na podmianę adresu MAC. Tym bardziej jeśli będzie widział napis. np. "strona w budowie"

Chcę zrobić coś takiego:

MAC_ADRESS // adres urzadzenia do zablokowania

if(MAC_ADRESS)
{ wyswietl napis "strona w budowie"}
else
{
wyswietl zawartosc strony
}

Jeśli nie można na podstawie adresu MAC to czy mozna zrobic coś takiego poprzez cookie ?

Adres IP odpada bo ciągle się zmienia i to nie ma sensu. Ale jesli w cookie mozna zapisac jakas informację na podstawie której mozna by zidentyfikowac komputer to by mi to wystarczyło.
Go to the top of the page
+Quote Post
!*!
post
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Jestem na innym systemie niż windows np. os x, linux, bsd, haiku i Twój skrypt nie działa, więc nic nie zostanie pobrane.
Wyłączę JS i Twój skrypt nie działa.
Cookie? Wyczyszczę.
EverCookie? Wyczyszczę.
IP? Zmienię.

Zamiast kombinować, użyłbyś wyszukiwarki, było dużo wątków odnośnie banowania i każdy sprowadził się do jednego... że jest to niemożliwe.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
StrefaPi
post
Post #8





Grupa: Zarejestrowani
Postów: 235
Pomógł: 50
Dołączył: 2.03.2013

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


ale ogólnie to ten skrypt nie działa i nie będzie działał poprawnie nawet w windows, jest z czasów Internet Explorera 5/6 (2006 rok) i ActiveX

Ten post edytował StrefaPi 18.03.2013, 19:06:26


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
deredas
post
Post #9





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

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


Cytat(!*! @ 18.03.2013, 18:10:42 ) *
Jestem na innym systemie niż windows np. os x, linux, bsd, haiku i Twój skrypt nie działa, więc nic nie zostanie pobrane.
Wyłączę JS i Twój skrypt nie działa.
Cookie? Wyczyszczę.
EverCookie? Wyczyszczę.
IP? Zmienię.

Zamiast kombinować, użyłbyś wyszukiwarki, było dużo wątków odnośnie banowania i każdy sprowadził się do jednego... że jest to niemożliwe.



Myślisz jak haker czy osoba która za wszelką cenę chce się dostać.

Normalni użytkownicy komputera jak widzą napis " strona w budowie" to nie przechodzą z windowsa na linux, nie zmieniają IP itd. tylko po prostu opuszczają stronę....

Nie chcę szukać idealnego rozwiązania.

Szukam rozwiązania opierawszy się na kilku ważnych założoneniach:
- wiem, że użytkownik używa windowsa (google analytics mi to raportuje)
- wiem, że użytkownik nie jest obeznany na tyle w komputerach aby stwierdzić, że trzeba wyłączyć JS i wyczyścić coookie aby strona się załadowała...

jest to uzytkownik który jak zobaczy napis " strona w budowie" to sobie odpuści....

rozumiesz mnie teraz ?

ps.Zamiast kombinować, użyłbyś wyszukiwarki, było dużo wątków odnośnie banowania i każdy sprowadził się do jednego... że jest to niemożliwe.

Użyłem wyszukiwarki - tak jak mówisz znalazłem dużo wątków odnośnie banowanie i każdy z nich miał zupełne inne założenia i dlatego sprowadzał się do jednego stwierdzenia - że jest to niemożliwe.
Natomiast mój cel jest o wiele bardziej prosty smile.gif


Ten post edytował deredas 18.03.2013, 19:32:51
Go to the top of the page
+Quote Post
fiszol
post
Post #10





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Sorry że się wtrącam, ale: jeśli zakładasz, że z Twojej strony/aplikacji korzystają tylko ainformatyczni ludzie korzystający z tylko jednego OS, to kiedyś będziesz miał przykrą niespodziankę jak ktoś sobie z zwykłej nudy zacznie dłubać.


--------------------
\o/
Go to the top of the page
+Quote Post
Dominator
post
Post #11





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

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


Proponuję evercookie.
Go to the top of the page
+Quote Post
Michael2318
post
Post #12





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Skoro mówisz, ze masz takich ainfachowców na tej stronie to czemu nie zrobsiz tego co wszyscy normalni ludzie (IP + ciasteczka) ? Jak to przejdzie to wszystko przejdzie.
Go to the top of the page
+Quote Post
!*!
post
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
Użyłem wyszukiwarki - tak jak mówisz znalazłem dużo wątków odnośnie banowanie i każdy z nich miał zupełne inne założenia i dlatego sprowadzał się do jednego stwierdzenia - że jest to niemożliwe.
Natomiast mój cel jest o wiele bardziej prosty


I dlatego właśnie miałeś wyciągnąć ten sam wniosek. Jak masz taki świetny wywiad z GA, to stwórz ciastko, w czym problem? Tylko później nie pytaj jak to działa na czaterii i dlaczego jednak dało się to obejść.
Dominator - evercookie będzie za bardzo hakerskie... przecież użytkownik nie wie jak wyczyścić historię, a co dopiero całe foldery/pamięć.

Ten post edytował !*! 18.03.2013, 20:35:06


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
deredas
post
Post #14





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

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


Cytat(!*! @ 18.03.2013, 20:32:57 ) *
I dlatego właśnie miałeś wyciągnąć ten sam wniosek. Jak masz taki świetny wywiad z GA, to stwórz ciastko, w czym problem? Tylko później nie pytaj jak to działa na czaterii i dlaczego jednak dało się to obejść.
Dominator - evercookie będzie za bardzo hakerskie... przecież użytkownik nie wie jak wyczyścić historię, a co dopiero całe foldery/pamięć.



Najlepszym dowodem, że użytkownik nie wie że trzeba wyczyścić historię jestem ja (nie wiedziałem że jak wyczyszczę historię to ban z czata zniknie).

No właśnie tutaj do Was piszę (dział przedszkole) bo nie wiem jak to cookie się tworzy. I dlatego proszę Was o pomoc.




Nie każdy kierowca pojazdu wie gdzie jest w jego aucie aparat zapłonowy, choć korzysta z niego codzinnie przy uruchamianiu auta ;) To samo z użytkownikami internetu smile.gif
Go to the top of the page
+Quote Post
Michael2318
post
Post #15





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


tabela banlist w bazie:
Cytat
| ban_id | ban_ip | ban_expire |
| 1 | 154.84.24.4 | 136854154 |
| 2 | 244.64.84.4 | 136854154 |


  1. if ( !isset($_COOKIE['banned') ) // jesli nie istnieje ciasteczko 'banned' to sprawdzamy czy ten ktos jest zbanowany
  2. {
  3. $sql = "SELECT * FROM `banlist` WHERE ban_ip = '".$_SERVER['REMOTE_ADDR']."' AND ban_expire > ".time();
  4. if ( !($result = mysql_query($sql)) )
  5. {
  6. die('error in sql<br>'.mysql_error());
  7. }
  8. $num = mysql_num_rows($result);
  9. if ( $num > 0 )
  10. {
  11. setcookie('banned', $row['ban_id'], $row['ban_expire']); // jesli to IP jest w banliscie to tworzymy ciasteczko i...
  12. die('you are banned'); // wypluwamy error
  13. }
  14. }
  15. else // jesli ciasteczko istnieje to tylko sprawdzamy czy przypadkiem admin tego bana nie usunal przed czasem
  16. {
  17. $sql = "SELECT * FROM `banlist` WHERE ban_id = ".intval($_COOKIE['banned']." AND ban_expire > ".time();
  18. if ( !($result = mysql_query($sql)) )
  19. {
  20. die('error in sql<br>'.mysql_error());
  21. }
  22. $num = mysql_num_rows($result);
  23. if ( $num < 1 )
  24. {
  25. setcookie('banned', (time()-10), (time()-10)); //usuwamy ciasteczko bo admin zdjal tego bana
  26. }
  27. }


Można dodać przed wszystkim:
  1. $sql = "DELETE FROM `banlist` WHERE ban_expire < ".time();
  2. if ( !($result = mysql_query($sql)) )
  3. {
  4. die('error in sql<br>'.mysql_error());
  5. }


aby wywalić stare/przeterminowane bany, wtedy ten kawałek w pierwszych dwoch zapytaniach: ban_expire > ".time() można sobie darować.
Jeśli chcesz mieć też bany 'na zawsze' to oznaczaj je w ban_expire jako zero, a od strony php odpowiednio zwarunkuj, nie chce mi się już tego dopisywać.

Ten post edytował Michael2318 19.03.2013, 20:04:13
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: 22.08.2025 - 03:38