| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 31.10.2011
Beiträge: 19
PHP-Kenntnisse: Anfänger ![]() | OK, hier mal beispielhaft das Konzept anhand der Registrierung: Beim Aufruf der Seite wird ein Token generiert und gehasht. Die relevanten Feldnamen sind an das Token gekoppelt und werden ebenfalls gehasht. Ist das Token abgelaufen, wird ein neues Token generiert und die alten relevanten Feldnamen sind obsolet. Für Spam Bots gibt es per CSS ausgeblendete Feldnamen mit Standardnamen, welche auf jeden Fall leer bleiben müssen. Wenn irgendeiner dieser Standard Feldmanen mit Werten füllt und fas Formular absendet, geht es für den Betreffenden sofort in eine Blacklist und wird für 30 Minuten gesperrt. Die Sicherheitsabfrage ist eine Zufällige Zahlenfolge mit einer Zufälligen Länge, welche bei jedem Aufruf neu generiert wird. Ist die max. Anzahl der Registrierungsversuche erreicht, geht es in die Blacklist und der Betreffende wird auch wieder für 30 Minuten gesperrt. Desweiteren gibt es einen Tick-Count der einen Request/Seconds nachhält. Wird ein gewisser Schwellenwert überschritten, geht es wieder in eine Blacklist (noch nicht implementiert) und wird anschließend irgendwohin geleitet. Die Werte der relevanten Feldnamen werden jeweils ihrer Bestimmung mit einem dafür zugehörigen preg_match auf jeweils gültige Zeichen validiert. Wenn irgendwas nicht stimmt, gibt es entsprechende Fehlermeldungen. Ist ansonsten alles OK und das Token noch nicht abgelaufen, wird ein neuer Benutzer in der Datenbank angelegt und erhält eine E-Mail zwecks Bestattung der E-Mail-Adresse (noch nicht implementiert, damit man mit irgendwelchen Adressen zum Testen hantieren kann). Config- und Krypto-Dateien liegen außerhalb von htdocs. Soweit der Plan. Jetzt könnt ihr es auseinandernehmen ^^ ... bin für alles offen. Danke & Gruß Frank
__________________ Wenn man weiß wie es geht, ist es auf einmal sau einfach ... |
| | |
| | |||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | ||
| | |
| | |
| Neuer Benutzer Registriert seit: 31.10.2011
Beiträge: 19
PHP-Kenntnisse: Anfänger ![]() | Du hast recht ... es gibt "leider keine" eineindeutige Client-Erkennung ohne Cookie/SessionID. Deswegen: Der Sperreintrag basiert auf einen hash aus REMOTE_ADDR und HTTP_USER_AGENT. Zuerst wird der hash überprüft, um anschließend dann nur die IP zu prüfen. taucht die IP innerhalb einer Zeitspanne von 1,5 Stunden 3 mal auf, wird die IP für 12h Stunden gesperrt und wird solange diese weitere Prüfung auf nur IP als Sperreintrag in der DB vorhanden ist, sofort von der Site irgendwohin weggeheadert.
__________________ Wenn man weiß wie es geht, ist es auf einmal sau einfach ... |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Meine Fresse, so was aalglattes. Am besten wir lassen uns alle die Taschen zunähen | |
| | |
| | |
| Neuer Benutzer Registriert seit: 07.11.2011
Beiträge: 7
PHP-Kenntnisse: Fortgeschritten ![]() | @Neo68X Wieso lässt du nicht einfach das Benutzer Konto sperren statt zu versuchen denn Hacker irgendwie ausser Gefecht zu setzen? Sieht dann in etwa so aus: - 5 mal Password Falsch bei einem Benutzer -> Konto wird gesperrt. - E-mail mit Freischalt code wird an die registrierte Adresse gesendet. - User klickt den Code an Fehlversuche werden wieder auf 0 gesetzt. Ist halt nur ein Vorschlag damit du vielleicht, noch zu anderen Ideen angeregt wirst und das ganze aus einer anderen Perspektive betrachtest. Gruss PHPBenutzer |
| | |
| | ||
| Neuer Benutzer Registriert seit: 31.10.2011
Beiträge: 19
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Aber wenn jemand versucht mit einem nicht vorhandenen Benutzerkonto da irgendwie rumzukaspern, habe ich ja nur die Möglichkeit eine Kombi aus REMOTE_ADDR + HTTP_USER_AGENT zu hashen und dann zu sperren. Ich überlege derzeit auch noch, ob ich clients mit einem leeren oder nicht gesetzten HTTP_USER_AGENT Header komplett den Zugriff zu verweigern - mit entsprechenden Hinweis wenn dies zutrifft. Ich beziehe mich da auf den "fingerprint"-Hinweis des PHP Security Guide, nur in etwas abgewandelter Form. Gruß Frank
__________________ Wenn man weiß wie es geht, ist es auf einmal sau einfach ... | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Login System | Clara | PHP Einsteiger | 6 | 29.07.2011 18:54 |
| Facebook Login und eigener Login Paralell | blackcrow | PHP-Fortgeschrittene | 17 | 29.05.2011 21:03 |
| [Erledigt] PHP Login System | Nokes | PHP Tipps 2010 | 8 | 16.10.2010 14:15 |
| Script Login system mit Registrierung+aktivierungsmail | SkyX | PHP Tipps 2010 | 1 | 03.02.2010 18:57 |
| [Erledigt] Login System mit Registrierung | xstefxanx | PHP Tipps 2009 | 9 | 31.03.2009 16:33 |
| login system, logout timer | superfutzi | PHP Tipps 2008 | 14 | 28.12.2008 12:30 |
| Mysql LoginScriptzu MySqli LoginScript | lithium | PHP Tipps 2008 | 27 | 17.11.2008 19:48 |
| Login System | matii | PHP Tipps 2008 | 6 | 16.04.2008 11:35 |
| Login System Probleme ! | 7Style | PHP Tipps 2008 | 2 | 07.01.2008 13:55 |
| Problem mit meinem Login System | DJ Nuno | PHP Tipps 2008 | 9 | 16.10.2007 16:44 |
| Sicheres Login System? | PHP Tipps 2006 | 11 | 14.03.2006 15:05 | |
| Login System für die eigene HP? | Datenbanken | 1 | 05.10.2005 19:48 | |
| Registrierungs und Login Scripte, Beispiele | PHP Tipps 2004-2 | 4 | 13.12.2004 13:57 | |