|
|
|
Community
9dots.de Webdesign Board
|
|
|
|
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
naridian`9dots Administrator
Angemeldet: 07.11.2003 Beiträge: 288 Wohnort: Karlsruhe Interessen: Coding
|
Verfasst am: 10.11.2005, 23:34 Titel:
|
|
|
|
|
rey hat folgendes geschrieben: |
Tjoa, ich bin auch ein Tier im Bett, da ich aber kein Porno-Star bin, bin ich kein Profi.
|
Und ich war mir so sicher dass das du bist auf dem Plakat neben meiner Haustür! Für Unwissende: Ich wohne mitten im Karlsruher Rotlichtviertel |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 20.11.2005, 23:57 Titel:
|
|
|
|
|
Zitat: |
Thomas`tiweb ist n tier. studiert auch informatik. über seine rekordzeitlösungen von klausuraufgaben hab ich schon nette geschichten gehört... wie ihr wisst sind wir ja mit den tiwebleuten ganz gut bekannt.
|
Da werd ich ja ganz rot Als Profi bezeichne ich mich sicher nicht und wuerde mich nie so nennen So nun zum Thema:
Ja, es gibt tolle Bots, und wenn man sich nicht vorsieht knacken die dir sogar die Passwoerter von deinen Usern (wenn man nicht ein paar Sicherheitsfunktionen einbaut) ...
Ohne GDLib fallen mir grad folgende Dinge ein:
- irgendwas mit der IP des Clients, welche gespeichert wird (das kann z.b. so sein, dasses max. 5 Anmeldungen pro IP gibt (innerhalb 24h, einer Woche, etc)) - da gibts zig Moeglichkeiten und jede hat ihre Vor- und Nachteile
- Aktvierung per Mail und zwar so, dass die User erst in die User-DB geschrieben werden (also physisch vorhanden sind) wennse sich aktiviert haben - natuerlich jeweils ne andere Mail-Adresse oder so
- einen Sleep einbauen (>1sec), auf dass der Bot min. 500 Sekunden braucht um 500 User anzulegen (das ist eine sehr simple Methode und ich wuerd sie ueberall reinimplementieren wos noetig ist - z.b. auch login -> Bruteforce wenn man immer 1sec warten muss = unbezahlbar
Mit GDLib:
Gibt es zig Moeglichkeiten wie man das am besten hinbekommen kann. Solang du deine eigene waehlst (kein Tut, oder zumindest abgeaendert) gibts auch gute Chancen, dasses nicht geknackt wird. Soweit ich weis, ist der integrierte Schutz von phpBB schon laengst ausgehebelt (was soviel heisst: die Bots koennen das generierte Bild lesen wie ein Mensch).
Sicherheitsluecken gibts eigentlich keine - sind mir von GDLib auch eigentlich keine bekannt (sonst wuerde nicht ein Grossteil der Server mit GDLib fahren).
Ich hab so etwas noch nicht programmiert - werd mich aber vielleicht mal irgendwann ranhocken und es ausprobben (weil Bildbearbeitung via Konsole/Commands einfach Spass macht ). Generell sollt es so funktionieren wie schon zuvor andere gesagt haben:
- generiere einen String (z.b. substr(md5))
- generiere ein Bild
- nette Hintergrundfarbe waehlen
- nette Schriftfarbe waehlen (sollte sich nicht allzugut von der Hintergrundfarbe unterscheiden - lesbarkeit hin oder her, Bots lesen den Kontrast raus)
- String ins Bild schreiben (am besten: unterschiedliche Schriftfonts fuer die Buchstaben nehmen (super sind auch solche, welche nicht Standard sind - wird ja eh nur aufm Server generiert)
- lustige Symbole (zb. Logos von der Firma/CMS), Zeichen (z.b. andere Groesse, oder so), etc zum Verwirren der Bots auftragen (aber so, dasses noch lesbar ist)
- vielleicht noch ein paar Filter drueberjagen (kp was fuer welche)
- Bild speichern und ausgeben
- testen ob der String gleich ist
Hoert sich kompliziert an, isses vielleicht auch Aber steckt auf jeden Fall sehr viel Spielerei dahinter
Gruss Thomas |
|
Nach oben |
|
|
Think Mitglied
Angemeldet: 05.11.2005 Beiträge: 32
|
Verfasst am: 25.11.2005, 15:02 Titel:
|
|
|
|
|
Hey Thmoas, thx für deine Tipps, klappt auch soweit.
Habe alle Ideen von dir umgesetzt, nur fehlt mir irgendwie ein Geistesblitz bei der Funktion dass sich eine IP alle 24h nur 5 Anmeldungen machen kann. Die Funktion ist ebenfalls umgesetzt, ich speichere einfach IP und Zeit in ner DB, bei einem neuen Anmeldeversuch wird dann geprüft ob sich die IP im Zeitrahmen von 24h schonmal registrieren wollte.
Was wäre jetzt aber die eleganteste Methode, alte Einträge automatisch löschen zu lassen um die DB klein zu halten?
Dann hast du ja gemeint, die Bots können auch Accounts von schon registrierten Usern hacken wenn man keine Schutzfunktion einbaut. Welche Methoden verwendet er dabei? Nur Bruteforce? Vielmehr als den Sleep kann man dann ja nicht machen.
mfg |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 25.11.2005, 15:22 Titel:
|
|
|
|
|
Think hat folgendes geschrieben: | Dann hast du ja gemeint, die Bots können auch Accounts von schon registrierten Usern hacken wenn man keine Schutzfunktion einbaut. Welche Methoden verwendet er dabei? Nur Bruteforce? Vielmehr als den Sleep kann man dann ja nicht machen. |
Kannst doch einfach fehlgeschlagene Versuche mitloggen, wenn dann die fünf oder so voll sind, wird der Account gesperrt und der Benutzer bekommt zur Reaktivierung eine Email mit einem entsprechenden Link sowie einen Hinweis darauf, damit er ggf. das Passwort ändert. - Ganz simpel.
Zu Frage 1 werde ich nachher, falls sich bis dahin niemand gemeldet hat, Stellung nehmen. Habe jetzt leider keine Zeit mehr. |
|
Nach oben |
|
|
Think Mitglied
Angemeldet: 05.11.2005 Beiträge: 32
|
Verfasst am: 25.11.2005, 15:27 Titel:
|
|
|
|
|
rey hat folgendes geschrieben: |
Kannst doch einfach fehlgeschlagene Versuche mitloggen, wenn dann die fünf oder so voll sind, wird der Account gesperrt und der Benutzer bekommt zur Reaktivierung eine Email mit einem entsprechenden Link sowie einen Hinweis darauf, damit er ggf. das Passwort ändert. - Ganz simpel.
|
Theoretisch gute Idee
Aber dann könnte so ein Scherzkeks viel Ärger bereiten indem er sich mit falschen Daten (absichtlich natürlich) bei diversen Usern einloggt um deren Accounts zu sperren :/ |
|
Nach oben |
|
|
xaan Mitglied
Angemeldet: 19.04.2005 Beiträge: 370 Wohnort: Bayern Interessen: C#, C++, PHP, Security
|
Verfasst am: 25.11.2005, 15:47 Titel:
|
|
|
|
|
kannst ja nach 5 veruschen einfach 15 minuten pause machen wo der benutzer sich nicht einloggen kann |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 25.11.2005, 17:28 Titel:
|
|
|
|
|
xaan hat folgendes geschrieben: | kannst ja nach 5 veruschen einfach 15 minuten pause machen wo der benutzer sich nicht einloggen kann |
Eben, es gibt soviele Möglichkeiten. Welche letztendlich für dich die Beste ist, musst du wohl selbst herausfinden. |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 28.11.2005, 09:23 Titel:
|
|
|
|
|
aalso: nochmal zur bildgenerierung:
was mir eingefallen ist, es waere auch sinnvoll verschiedene verfahren zu programmieren (also komplett verschiedene - net nur zufallshintergrund oder sowas) und die dann zufallsgeneriert abzufragen... (also das ein bot wenner ein verfahren komplett kennt nur 20% chance hat das beim naechsten versuch wieder zu knacken - sehr viel spielerei
Think hat folgendes geschrieben: |
Was wäre jetzt aber die eleganteste Methode, alte Einträge automatisch löschen zu lassen um die DB klein zu halten?
|
Die Benutzer welche sich nicht aktiviert haben am besten loeschen (also nach so 2wochen oder aehnlichen - das sie z.b. ein admin manuell (in den 2wochen) noch freischalten kann.
Think hat folgendes geschrieben: |
Dann hast du ja gemeint, die Bots können auch Accounts von schon registrierten Usern hacken wenn man keine Schutzfunktion einbaut. Welche Methoden verwendet er dabei? Nur Bruteforce? Vielmehr als den Sleep kann man dann ja nicht machen.
|
Also Woerterbuchattacken sind wohl am verbreitesten - danach halt Bruteforce obwohls meis sinnlos ist, denn eigentlich unterstuetzen fast alle Systeme so eine "Schutzfunktion" wie sleep().
Wegen der Einlogsperre:
Habe glaube ich bei O2 ein gutes System erlebt - Bei 5maligen falschen Eingeben wird der Account fuer einen Tag (oder so) gesperrt. Man bekommt eine E-Mail wo man sich reaktivieren kann (mit richtigem Passwort).
Falls man sein Passwort vergessen hat, bekommt man ne Mail zugesandt mit dem Bestaetigungslink - das neue Passwort flattert ein und die Accountsperre wird mit dem neuem Passwort aufgehoben.
Eine von sehr vielen Moeglichkeiten ...
Nochwas am Rande: Ich wuerde nie so eine Sicherheitsabfrage wie "Der Name deiner Mutter?" oder son scheiss implementieren. Ich persoenlich finde die Fragen ein Rotz und tippe da nur wild auf der Tastatur rum...
Wenn man bei jedem System bei dem man einen Account besitzt auch noch zum Passwort (welches man ja vergessen koennte) auch noch seine Sicherheitsabfrage und Antwort kennen soll, dann Prost Mahlzeit ...
Btw: Diese Antworten sind SEHR anfaellig gegenueber Woerterbuchattacken
@think: Dein Enthusiasmus im Thema Sicherheit beim Login/Registrieren ist super, jedoch wuerd ich dir raten nicht zu viel Funktionen zu implementieren - sondern lieber nochmal den kompletten Code durchgehen um andere Sicherheitsluecken, etc zu vermeiden (was bringt es dir wenn man "OR 1" im Passwortfeld eintragen kann und damit jeder User Adminrechte bekommt?
Oder SQL-Injections ueber die Adresszeile taetigen kann?
Bitte frage jetzt nicht was das alles ist - suche vorher google auf sonst sprengen wir hier das Forum |
|
Nach oben |
|
|
Think Mitglied
Angemeldet: 05.11.2005 Beiträge: 32
|
Verfasst am: 03.12.2005, 17:03 Titel:
|
|
|
|
|
So, hab versucht, verschiedene Verfahren per Zufall aufzurufen. Allerdings konnte ich mich nich entscheiden welche davon die beste ist, also hab ich sie einfach alle beide eingebaut
Also das Bild ist nicht aus einem Verfahren generiert, sondern aus 2 (oder später beliebig mehr, je nachdem wieviele weitere Verfahren einem einfallen), die alle nahtlos ineinander übergehen.
Sieht aus wie ein Bild mit 6 Buchstaben, davon wurden je 3 Buchstaben (jeweils die ersten drei und die letzten drei) mit 2 unterschiedlichen Vefahren generiert. Eingabezeile für den Code gibt es natürlich nur eine, ist ja optisch gesehen auch nur ein Bild.
Deine Idee mit dem Zufallsverfahren ist trotzdem untergebracht ( ), denn die Reihenfolge wie die Vefahren eingesetzt werden, ist zufallsbestimmt.
Also mal sind die ersten 3 Buchstaben aus Verfahren 1 generiert, mal aus Verfahren 2 und bei den letzten 3 Buchstaben ebenso.
Erklären konnte ich noch nie gut, wenns keiner kapiert hat isses auch nicht so tragisch oder ich versuchs nochmal
Wie du das allerdings gemeint hast im Bezug auf die alten Einträge aus der DB löschen, kann ich nicht ganz nachvollziehen.
Zitat: | Die Benutzer welche sich nicht aktiviert haben am besten loeschen (also nach so 2wochen oder aehnlichen - das sie z.b. ein admin manuell (in den 2wochen) noch freischalten kann.
|
Also manuell per Hand alle 2 Wochen nachgucken wieviele Einträge da sind und manuell löschen fällt schonmal weg
Ich hätte es halt aus Ideenlosigkeit so gemacht, dass immer wenn sich ein neuer registriert das Alter der Einträge geprüft und gegebenenfalls gelöscht wird.
Voll automatisch gehts schätzungsweise nur mit cron jobs?
mfg |
|
Nach oben |
|
|
unex`9dots Administrator
Angemeldet: 02.08.2003 Beiträge: 1106 Wohnort: Karlsruhe Interessen: Coding, Segeln, Schwimmen, PC
|
Verfasst am: 03.12.2005, 17:17 Titel:
|
|
|
|
|
so war es auch gemeint, ohne einen cronjob zu verwenden geht das wohl nur indem du bei einem user die anderen mitkontrollierst, entweder du machst es bei jedem user mit oder du machst es z.b. nur beim ersten user eines Tages - in dem Fall könntest du es ja mit einem tagescounter koppeln oder sonstirgendwie... |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 06.12.2005, 17:37 Titel:
|
|
|
|
|
Zitat: | Die Benutzer welche sich nicht aktiviert haben am besten loeschen (also nach so 2wochen oder aehnlichen - das sie z.b. ein admin manuell (in den 2wochen) noch freischalten kann. |
Jop, ich meinte damit dass die User automatisch (am besten per Cron, kannst aber euch bei jedem x-ten Seitenaufruf, oder sonstwas checken) nach 2 Wochen geloescht werden.
In dieses 2 Wochen waers nicht schlecht wenn ein Admin ne Moeglichkeit hat, ihn uebers CMS freizuschalten (weil z.b. E-Mail Adresse falsch). |
|
Nach oben |
|
|
Think Mitglied
Angemeldet: 05.11.2005 Beiträge: 32
|
Verfasst am: 08.12.2005, 16:55 Titel:
|
|
|
|
|
Na dann sag ich mal vielen Dank an alle, Fragen gelöst (meine zumindest) |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 08.12.2005, 22:49 Titel:
|
|
|
|
|
und wo sieht man nun dein Script
lad mal wenigstens die generierung hoch, dass man was sehen kann |
|
Nach oben |
|
|
Think Mitglied
Angemeldet: 05.11.2005 Beiträge: 32
|
Verfasst am: 17.12.2005, 12:08 Titel:
|
|
|
|
|
Werd ich machen, damit man Fehler schneller findet und nicht im ganzen Script suchen muss, hab ich jeden einzelnen Teil eine einzelne php Datei gegeben, muss das ganze erstmal demnächst zusammenflicken.
edit: oder auch nich, hab ne bessere idee das heir is irgendwie zu viel stress nur für die registrierung |
|
Nach oben |
|
|
clibin009 Mitglied
Angemeldet: 14.05.2018 Beiträge: 1021
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|
|