Wer ist hier? 1 Gäste
|
Mitloggen der Fehllogins
|
|
emblinux |
Geschrieben am 10.02.2010 00000002 20:27
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
Im Internet gibt es einige Dienstanbieter, die mitloggen,wie oft sich jemand mit einem Account falsch eingelogt hat. So wird es z.B. bei GMX gemacht. Nach dem Login wird einem angezeigt ob und wie oft sich jemand mit deinem Account anmelden wollte und der Conter wird wieder zurückgesetzt. Damit kann man feststellen, ob der Account versucht wird zu knacken. Also hbe ich mir gedacht, das könnte man doch vieleicht bei PHP-Fusuion auch gebrauchen, wer es denn braucht. Also habe ich mir dazu auch mal wieder ein Paar Gedanken gemacht und folgendes kam als Lösung dabei raus. Wir brauchen ein neues Tabellenfeld in der User-Tabelle und kleinere Anpassungen an der maincore.php und der user_info_panel.php. Zuerst legen wir mal das Tabellenfeld an. Der Datentyp des Feldes ist SMALLINT mit der Länge 2 und dem Attribute UNSIGNED. Dafür könnt ihr phpMyAdmin benutzen oder das wieder über ein Panel anlegen. FÜr die Panelvariante geht ihr folgendermaßen vor: 1. Adminbereich -> Systemadmin -> Panels 2. Neues Panel anlegen 3. Panelnamen festlegen 4. bei Panel-Content kommt folgendes hin: dbquery("ALTER TABLE ".DB_USERS." ADD user_faillogin SMALLINT( 2 ) UNSIGNED NOT NULL"); 5. Admin-Passwort eingeben und auf VORSCHAU klciken, nicht auf Speichern 6. sollte keine Fehlermeldung kommen, dann ist das Feld angelegt Jetzt kommen wir zu den Anpassungen in der maincore.php, diese einfach mal öffnen und folgendes suchen: Code Download Code if (isset($_POST['login']) && isset($_POST['user_name']) && isset($_POST['user_pass'])) und ändert das in: Code Download Code if (isset($_POST['login']) && isset($_POST['user_name']) && isset($_POST['user_pass'])) Dann öffnet die user_info_panel.php und such nach: Code Download Code $msg_count = dbcount("(message_id)", DB_MESSAGES, "message_to='".$userdata['user_id']."' AND message_read='0'AND message_folder='0'"); und fügt davor folgendes ein: Code Download Code // Wenn Fehllogins, dann Anzeige und zuruecksetzen So das wars auch schon. Den Text für die Ausgabe könnt ihr natürlich gerne abändern. Man kann das ganze auch wieder etwas rofessioneller machen, in dem man das in eine Variable in der entsprechenden Sprachdatei macht, aber das ist dann jedem selbst überlassen. Auch hier gilt, ich übernehme keine Haftung für irgendwelche Schäden, die entstehen könnten. Daher macht auch hier vorher ein Backup der zu ändernden Dateien. Für Lob und konstruktiever Kritik bin ich natürlich immer offen. Man kann das ganze jetzt auch noch dahingehend erweitern, das man bei Fehllogins die daten des vermeintlichen Angreifers in eine extra Tabelle speichert. (Datum, IP, Passwortversuche ...) Das nimmtdann aber schon ausmaße einer Infusion an, mit der man das ganze auch noch in einer Übersicht darstellen kann, um dem ganzen nachzugehen. Wer das machen möchte kann dazu gerne diesen Hack benutzen. Ich sehe darin nur sehr wenig Sinn, diese Daten mit abzuspeichern, da es einerseits rechtliche Probleme verursachen kann und andererseits ist es fraglich, ob man an den "Angreifer" überhaubt heran kommt. Eine Diskussion über Sinn oder Unsinn dieses Mods/Hacks möchte ich hier nicht haben. EDIT: Wer das gerne testen möchte, kann dies wieder hier tun: http://emblinux.ath.cx/fusion7/news.php User: tester PW: 123456 Aber nur solange der Rechner an ist. |
|
|
SC-Ad-Bot | Advertisement |
| |
DjMicha1985 |
Geschrieben am 10.02.2010 00000002 22:16
|
![]() Administrator ![]() Beiträge: 784 Registriert am: 02.10.08 Fusioneer: 15 years 10 months 4 weeks 29 days 3 hours 43 minutes 41 seconds |
geil geil geil ... einfach nur hammer dirk. Funzt super! |
|
|
JC Drago |
Geschrieben am 10.02.2010 00000002 22:26
|
![]() Seiten Administrator ![]() Beiträge: 426 Registriert am: 06.09.08 Fusioneer: 15 years 11 months 3 weeks 24 days 21 hours 32 minutes 16 seconds |
Wie immer klasse Arbeit. Zu dem rest schweige ich wegen der nicht gewünschten Diskussion ![]() Man muss nicht alles wissen....nur wo´s steht.
_______________________________________ KEIN Support per Mail, ICQ oder PN ! |
|
|
mrburns |
Geschrieben am 11.02.2010 00000002 12:40
|
![]() Mitglied ![]() Beiträge: 120 Registriert am: 03.03.09 Fusioneer: 15 years 5 months 4 weeks 29 days 16 hours 30 minutes 34 seconds |
huhu meine frage ist wo wird mir das ganze dann angezeigt? in der db oder im user info panel? oder wo gruss christian |
|
|
Anonymer Benutzer |
Geschrieben am 11.02.2010 00000002 12:58
|
![]() Jung Mitglied ![]() Beiträge: 30 Registriert am: 28.05.09 Fusioneer: 15 years 3 months 0 weeks 4 days 16 hours 46 minutes 53 seconds |
Er hat es ja schon beschrieben genauer lesen. und laut code wird es dann im user_info_panel angezeigt Gruß Run Zitat emblinux schrieb: Dann öffnet die user_info_panel.php und such nach: Code Download Code $msg_count = dbcount("(message_id)", DB_MESSAGES, "message_to='".$userdata['user_id']."' AND message_read='0'AND message_folder='0'"); und fügt davor folgendes ein: Code Download Code // Wenn Fehllogins, dann Anzeige und zuruecksetzen So das wars auch schon. Den Text für die Ausgabe könnt ihr natürlich gerne abändern. Man kann das ganze auch wieder etwas rofessioneller machen, in dem man das in eine Variable in der entsprechenden Sprachdatei macht, aber das ist dann jedem selbst überlassen. |
|
|
emblinux |
Geschrieben am 11.02.2010 00000002 13:00
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
Also in der DB kann schon mal gar nichts angezeigt werden, sondern dort können nur Daten gepseichert, gelöscht oder abgerufen werden. In der Beschreibung erwähne ich ja, das man die Datei user_info_panel.php anpassen muss, also kann das ja nur heißen, das dort die Ausgabe erfolgt. Wer nun kein User Info Panel benutzt, weil er einen Login im Header hat und dort auch alles angezeigt wird, na dann muss man das halt dort entsprechend einbinden. Meine Anleitungen beziehen sich meistens auf die Standard Fusion, da ich nicht alle Modifikationen berücksichtigen kann. |
|
|
mrburns |
Geschrieben am 11.02.2010 00000002 13:06
|
![]() Mitglied ![]() Beiträge: 120 Registriert am: 03.03.09 Fusioneer: 15 years 5 months 4 weeks 29 days 16 hours 30 minutes 34 seconds |
ok danke dann muss ich mal schauen wo ich es bei mir einbinden muss |
|
|
DjSusnhine |
Geschrieben am 12.02.2010 00000002 12:17
|
![]() Senior Mitglied ![]() Beiträge: 286 Registriert am: 09.02.09 Fusioneer: 15 years 6 months 3 weeks 21 days 3 hours 37 minutes 48 seconds |
Ich find das ist ne gute sache. Leider frage ich mich wie nenne ich das Tabelenfeld. Hab zwar jetzt mit dem Namen 5 eins gemacht bekomm aber nichts angezeigt im Panel. Hmm
|
|
|
emblinux |
Geschrieben am 12.02.2010 00000002 12:37
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
Kannst du nicht LESEN ?! ES steht doch alles da. Zitat FÜr die Panelvariante geht ihr folgendermaßen vor: 1. Adminbereich -> Systemadmin -> Panels 2. Neues Panel anlegen 3. Panelnamen festlegen 4. bei Panel-Content kommt folgendes hin: dbquery("ALTER TABLE ".DB_USERS." ADD user_faillogin SMALLINT( 2 ) UNSIGNED NOT NULL"); 5. Admin-Passwort eingeben und auf VORSCHAU klciken, nicht auf Speichern 6. sollte keine Fehlermeldung kommen, dann ist das Feld angelegt Wenn du dich exakt an die Anleitung hälst, hast du keinerlei Probleme. |
|
|
DjSusnhine |
Geschrieben am 12.02.2010 00000002 12:55
|
![]() Senior Mitglied ![]() Beiträge: 286 Registriert am: 09.02.09 Fusioneer: 15 years 6 months 3 weeks 21 days 3 hours 37 minutes 48 seconds |
ok ok hab es überflogen. Wenn ich das feld mit panelfuktion angelegt habe sollte es in mysql doch sein wo ist es unter fusion_user ist nix drin
|
|
|
emblinux |
Geschrieben am 12.02.2010 00000002 13:05
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
Dann wirst du wohl was falsch gemacht haben. Wenn du per phpMyadmin auf die Datenbank kommst, dann leg das Feld doch manuell an. Die Anleitung ist so simpel als auch einfach. Aber es gibt immer wieder einige, die nicht oder nicht richtig lesen können. Dieses Thema wurde schon mehr als 100 mal aufgerufen, also haben es auch schon einige davon eingebaut, und das ohne Probleme. Also muss es doch an dir liegen...? |
|
|
DjSusnhine |
Geschrieben am 12.02.2010 00000002 13:09
|
![]() Senior Mitglied ![]() Beiträge: 286 Registriert am: 09.02.09 Fusioneer: 15 years 6 months 3 weeks 21 days 3 hours 37 minutes 48 seconds |
Super System hat man es eingaut sieht man ob sich einer versucht hat mit dem Acc einzulogen. Gut gemacht. Das ist eine zusäztliche absicherung
Bearbeitet von DjSusnhine am 12.02.2010 00000002 13:16 |
|
|
mrburns |
Geschrieben am 12.02.2010 00000002 15:42
|
![]() Mitglied ![]() Beiträge: 120 Registriert am: 03.03.09 Fusioneer: 15 years 5 months 4 weeks 29 days 16 hours 30 minutes 34 seconds |
also ich hab das user info panel von marcusg drauf und hab code an der besagten stelle eingesetzt da ich die zeile zwei mal hab hab ich sie auch an beiden einzeln eingesetzt und auch zusammen aber ich bekomm nicht angezeigt maincore ist geändert und das tabellenfeld ist auch in der db gruss christian ok hat sich erledigt hatte nen kleinen fehler drin nun geht doch Bearbeitet von mrburns am 12.02.2010 00000002 15:52 |
|
|
emblinux |
Geschrieben am 12.02.2010 00000002 15:54
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
Wie bereist gesagt, gehe ich immer vom Standard aus. Wenn du was anderes verwendest, musst du schauen wie und wo du es einbauen musst. Dabei muss man natürlich einiges beachten. Hast du dich denn mal falsch eingelogt und danach richtig. Dann sollte dir angezeigt werden, das versucht worde 1 mal sich anzumelden, was fehlschlug. Gleichzeitig wird der wert wieder zurückgesetzt, so dass nach einem Neuladen der Seite nichts mehr angezeigt wird. Deshalb macht es auch wenig Sinn, das an 2 Stellen einzubinden, es wird nur an einer Stelle angezeigt. Dabei sollte schon klar sein, das der Zähler nur hochgezählt wird, wenn man den richtigen Loginnamen aber das falsche Passwort eingibt. Anders geht es auch gar nicht. |
|
|
mrburns |
Geschrieben am 12.02.2010 00000002 16:17
|
![]() Mitglied ![]() Beiträge: 120 Registriert am: 03.03.09 Fusioneer: 15 years 5 months 4 weeks 29 days 16 hours 30 minutes 34 seconds |
ja hab wieder abgeändert das es nur bei member in der user_info_panel steht das das nur bei pw geht war klar ich hatte nur nie ne anzeige bekommen und hatte öffter das falsche pw eingegeben danach hab ich noch ne lehrzeile in der user php weggemacht und dann ging es plötzlich weiss nicht warum weil lehrzeile ja eigentlich nichts macht aber jetzt funktioniert es auf jeden fall klasse arbeit von dir und ne super idee danke gruss christian |
|
|
Mytelion |
Geschrieben am 18.03.2010 00000003 12:53
|
![]() Mitglied ![]() Beiträge: 100 Registriert am: 03.01.10 Fusioneer: 14 years 7 months 4 weeks 28 days 0 hours 53 minutes 34 seconds |
Nabend ich habe folgendes Prob wen ich über Panel anlegen die DB setzten möchte. Code Download Code Parse error: parse error, expecting `','' or `';'' in S:\xampp\htdocs\administration\panel_editor.php(128) : eval()'d code on line 2 ich habe mir die panel_editor.php auch neu gesaugt aber immer noch der selbe fehler! in der Besagten zeile steht das dort drinne [geshi=php] eval($panel_content); [/geshi] Und so schaut es aus wen ich den db code ins Panel setzte Code Download Code openside("MitloggenderFehllogins"); >>>Ich habe keine schreibfehler ich denke nur zu schnell ^^<<<
|
|
|
emblinux |
Geschrieben am 18.03.2010 00000003 13:19
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
Ließ dir bitte nochmal genau die Anleitung durch. Da steht nichts davon, das du das ausgeben sollst, sondern ausführen. nicht !!! Code Download Code echo "dbquery("ALTER TABLE ".DB_USERS." ADD user_faillogin SMALLINT( 2 ) UNSIGNED NOT NULL");"; sondern Code Download Code dbquery("ALTER TABLE ".DB_USERS." ADD user_faillogin SMALLINT( 2 ) UNSIGNED NOT NULL"); Wer lesen kann ist klar im Vorteil. |
|
|
Mytelion |
Geschrieben am 19.03.2010 00000003 16:47
|
![]() Mitglied ![]() Beiträge: 100 Registriert am: 03.01.10 Fusioneer: 14 years 7 months 4 weeks 28 days 0 hours 53 minutes 34 seconds |
Hmm da kommt aber der Gleiche fehler Fehler Code Download Code Parse error: parse error, expecting `','' or `';'' in S:\xampp\htdocs\administration\panel_editor.php(128) : eval()'d code on line 2 und so schaut das im panel aus Code Download Code openside("name"); >>>EDIT mein fehler ich habs jetzt nur noch TESt obs dann auch angezeigt wird.<<< So ich habe jetzt 6 mal Password und 6 mal Login namen falsh angegeben aber ich bekomme keine nachricht das jemand versucht hat sich andersweitig einzuloggen! hir mein user info panel Code Download Code if (iMEMBER) { Bearbeitet von Mytelion am 19.03.2010 00000003 17:01 >>>Ich habe keine schreibfehler ich denke nur zu schnell ^^<<<
|
|
|
emblinux |
Geschrieben am 19.03.2010 00000003 17:53
|
![]() Seiten Administrator ![]() Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 15 years 10 months 3 weeks 27 days 12 hours 44 minutes 16 seconds |
hast du auch die Änderung in der maincore.php gemacht.?
|
|
|
Mytelion |
Geschrieben am 19.03.2010 00000003 18:17
|
![]() Mitglied ![]() Beiträge: 100 Registriert am: 03.01.10 Fusioneer: 14 years 7 months 4 weeks 28 days 0 hours 53 minutes 34 seconds |
Jup habe ich schaue hir Code Download Code closedir($dh); >>>EDIT ich habe das User info panel von MarcusG fals es wichtig ist?!<<< Bearbeitet von Mytelion am 19.03.2010 00000003 18:22 >>>Ich habe keine schreibfehler ich denke nur zu schnell ^^<<<
|
|
Springe ins Forum: |