php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.10.2010, 22:20  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard Mein Homepage "Kernel"... Suche freiwillige Tester

Hallo liebe Community,

Ich arbeite momentan an einem privaten Projekt. Ziel des Projekts ist es, einen sauberen, einfachen und flexiblen Weg zur Erstellung einer eigenen Homepage für jeden zu erstellen. Deshalb baue ich gerade einen "Homepage-Kernel". Dieser bietet Funktionen an, die später die "Module" (Die dann den Content der Homepage bereitstellen) nutzen.
Aber ich bleib erstmal bei dem Kernel.
Ich bräucht ein paar Tester, die meinen Kernel auf Verwundbarkeiten etc Testen.
Den Kernel kann man hier beziehen:

http://msc.tweeting-bird.de/kernels/

Die aktuellste Version ist Version 0.1c und bietet schon einige Funktionen:
- User anlegen
- User einloggen
- User aktivieren
- User löschen
- Plugins für den Kernel bauen
- MySQL-Verbindungen und Querys
- Methoden zur Validierung
- User-Methoden (z.B. ob ein user schon existiert etc.)
- Logout (Logout funktioniert über den Parameter '...php?do=logout'
- Konfiguration

Um den Kernel nutzen zu können, muss man lediglich die "kernel.inc.php" in eine beliebige Datei includen.. Die Datei kann sich in einem beliebeigen Ordner befinden (Hauptsache, der Include-Pfad passt^^).
Als nächstes braucht ihr nurnoch das Kernel-Objekt (Auch root-Objekt genannt) anzusprechen. Das Kernel-Objekt ist nach dem Include in dieser globalen Variable verfügbar:
Zitat:
$_GLOBALS['kernel']['root']
Dann müsst ihr noch eine Datenbankverbindung einstellen (Unter kernel/config/config.php). Die Datenbank sollte utf8-bin als Kodierung verwenden. Zudem legt ihr am besten eine Tabelle an namens "users".

Code:
CREATE TABLE IF NOT EXISTS `users` (
  `username` text COLLATE utf8_bin NOT NULL,
  `hash` text COLLATE utf8_bin NOT NULL,
  `salt` text COLLATE utf8_bin NOT NULL,
  `sessionkey` text COLLATE utf8_bin NOT NULL,
  `activated` text COLLATE utf8_bin NOT NULL,
  `ip` text COLLATE utf8_bin NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Der Kenel ist komplett dokumentiert, jede FUnktion hat ihre eigene Beschreibung, sollt eig alles selbsterklärend sein

Bitte schickt mir evtl Bugs, die ihr gefunden habt, ich steh auch für jeden Verbesserungsvorschlag offen.

Bei Fragen, einfach melden

Bitte schickt mir kein "buuh.. so ein Müll, voll Scheiße.." blah.. wie gesagt, es ist ein privates Projekt und ganz btw, ich bin erst 16 und muss noch viel in Sachen Programmierung lernen

Mfg Fips.

Geändert von acetox94 (05.10.2010 um 22:31 Uhr).
acetox94 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.10.2010, 23:26  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Ohne Dokumentation hat das wohl keine Zukunft.
Lerne JavaDoc und erstelle eine ordentliche Dokumentation.

Den Code habe ich noch nicht angeschaut (außer kernel.inc.php).
Der Einsatz von $_GLOBALS zeigt aber allein schon einen deutlichen Konzeptfehler.

Du speicherst aber hoffentlich nicht den Salt in der Datenbank oder habe ich mich da verlesen?
__________________
Frank ist offline   Mit Zitat antworten
Alt 06.10.2010, 08:09  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard

Hallo Frank,

Natürlich speichere ich den Salt in der Datenbank, wo den auch sonst. Der Salt ist für die Anmeldung.. Denn wenn sich ein User registriert hat, Wird zu aller erst ein Salt erstellt. Dieser wird dann ans passwort angehängt und wird dann 5000x mit md5 verschlüsselt (Um "md5-hackern" keine chance zu geben).. Der Hash und der Salt werden dann in der DB gespeichert, und wenn sich ein User einloggen will, wird das gleiche Verfahren angewendet: Der Salt aus der DB wird an das eingegebene Login-Passwort gehängt, 5000x md5 drüber, und wenn dann der resultierende Hash gleich dem Hash aus der DB ist, wird der User eingeloggt..
Zur Dokumentation: Es hat noch keinen Sinn eine ausführliche Doku zu schreiben.. Der Kernel ist noch in der "Baby"-Phase..
Ich arbeite erst seit gut einer Woche dran..
Wenn der Kernels ausgereifter ist, dann werd ich mich hinsetzten und eine Doku schreiben, bis dahin reichen die (ziemlich ausführlichen) Beschreibungen im Quelltext.

Geändert von acetox94 (06.10.2010 um 08:42 Uhr).
acetox94 ist offline   Mit Zitat antworten
Alt 06.10.2010, 10:30  
Jens P.
Gast
 
Beiträge: n/a
Standard

GLOBALS ist schonmal eine schlechte Lösung. Warum lässt du über das PW 5000x md5 laufen? Was hat das denn für einen Sinn? Warum nicht 23471 oder 2142 mal? Sehe ich als schwachsinnig an
  Mit Zitat antworten
Alt 06.10.2010, 10:38  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Über den Unsinn von mehrfach md5 haben wir letztens schon gesprochen. Dadurch erhöht sich die Chance eine Kollision zu haben ... es ist also unnötig das 5000 mal zu machen, nimm nen gescheiten Salt und dann 1 mal md5 drüber.

Das ist ja geil:
PHP-Code:
####
    ## IS_EMPTY
    ##
    ## Diese Funktin überprüft, ob eine Variable WIRKLICH leer ist.
    ## Vergleichbar mit NULL
    ##
    ## @param: Eine Variable
    ## @return: Leer -> TRUE, Nicht leer -> FALSE
    ####
    
function is_empty($pmixed_var) {
    
        return 
md5($pmixed_var)."a" == "d41d8cd98f00b204e9800998ecf8427e"."a";
        
    } 

Geändert von Flor1an (06.10.2010 um 10:42 Uhr).
Flor1an ist offline   Mit Zitat antworten
Alt 06.10.2010, 10:39  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 298
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
5000x mit md5 verschlüsselt
Die Quantität steigert nicht die Qualität
KarlEgon ist offline   Mit Zitat antworten
Alt 06.10.2010, 10:50  
Jens P.
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Flor1an Beitrag anzeigen
Über den Unsinn von mehrfach md5 haben wir letztens schon gesprochen. Dadurch erhöht sich die Chance eine Kollision zu haben ... es ist also unnötig das 5000 mal zu machen, nimm nen gescheiten Salt und dann 1 mal md5 drüber.

Das ist ja geil:
PHP-Code:
####
    ## IS_EMPTY
    ##
    ## Diese Funktin überprüft, ob eine Variable WIRKLICH leer ist.
    ## Vergleichbar mit NULL
    ##
    ## @param: Eine Variable
    ## @return: Leer -> TRUE, Nicht leer -> FALSE
    ####
    
function is_empty($pmixed_var) {
    
        return 
md5($pmixed_var)."a" == "d41d8cd98f00b204e9800998ecf8427e"."a";
        
    } 
Wie unnötig ist denn diese Funktion? Ich sehe da keinen Sinn drin!
  Mit Zitat antworten
Alt 06.10.2010, 13:02  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard

@ 5000x md5: Ja, ich wollte es sicher haben.. aber wenn ein Salt und 1x md5 reicht, ok.. kann man ja ändern
@ is_empty(): Der Sinn: empty() gibt TRUE zurück, wenn der Input "0" ist.. wenn bei meiner Funktion "0" als parameter kommt, gibt meine FALSE zurück, was wichtig ist.. ok, das mit dem md5 is unnötig^^
@ GLOBALS: ja, da werd ich ändern.. die kernel.inc.php wird jez dann auch eine Klasse werden.. in der werden die configs geladen (nicht GLOBAL!) und das root-objekt wird nun eine Klassen-Variable in dieser Klasse werden.. Danke.

achja, es wäre besser mir Verbesserungsvorschläge zu geben und nicht einfach zu sagen, dass eine Funktion "unnötig" ist.. das bringt mich nicht weiter...

Mfg
acetox94 ist offline   Mit Zitat antworten
Alt 06.10.2010, 13:16  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Wenn du den Salt in der Datenbank speicherst hat er keine Sinn. Wenn jemand die Datenbank hackt dann hat er somit auch den Salt und kann sich schöne gemütliche Rainbow Tables erstellen. Der Salt ist eben dafür da, dass wenn man an das PW gelangt, keine Rückschlüsse ziehen kann, weil der Hash mit dem Salt versehen wurde den man nicht kennt (in deinem Fall dann aber schon). Speichere den Salt irgendwo als Variable in deinem PHP Script (z.B. in einer Config Datei). Dann muss der Angreifer an die Datenbank und an die Config-Datei kommen, um Rückschlüsse auf das Passwort ziehen zu können. Den Salt also in einer Datenbank abzulegen (auch noch in der gleichen Datenbank und Tabelle wie die restlichen Userdaten) ist in diesem Sinne schwachsinnig. Dann lass den Salt lieber weg.

Zitat:
Zur Dokumentation: Es hat noch keinen Sinn eine ausführliche Doku zu schreiben.. Der Kernel ist noch in der "Baby"-Phase..
Ich arbeite erst seit gut einer Woche dran..
Wenn der Kernels ausgereifter ist, dann werd ich mich hinsetzten und eine Doku schreiben, bis dahin reichen die (ziemlich ausführlichen) Beschreibungen im Quelltext.
Wenn du gleich anständig in JavaDoc dokumentieren würdest (was nicht großartig anders ist, als das, was du schon gemacht hast, nur dass es Konventionen folgt), dann würdest du dir das Doku-schreiben sparen und hättest schon jetzt, mit gleichem Aufwand eine entsprechende Dokumentation (ähnlich php.net). Solltest du dir schleunigst angewöhnen.
__________________

Geändert von Frank (06.10.2010 um 13:19 Uhr).
Frank ist offline   Mit Zitat antworten
Alt 06.10.2010, 13:24  
Benutzer
 
Registriert seit: 10.06.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
acetox94 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Frank Beitrag anzeigen
Wenn du den Salt in der Datenbank speicherst hat er keine Sinn. Wenn jemand die Datenbank hackt dann hat er somit auch den Salt und kann sich schöne gemütliche Rainbow Tables erstellen. Der Salt ist eben dafür da, dass wenn man an das PW gelangt, keine Rückschlüsse ziehen kann, weil der Hash mit dem Salt versehen wurde den man nicht kennt (in deinem Fall dann aber schon). Speichere den Salt irgendwo als Variable in deinem PHP Script (z.B. in einer Config Datei). Dann muss der Angreifer an die Datenbank und an die Config-Datei kommen, um Rückschlüsse auf das Passwort ziehen zu können. Den Salt also in einer Datenbank abzulegen (auch noch in der gleichen Datenbank und Tabelle wie die restlichen Userdaten) ist in diesem Sinne schwachsinnig. Dann lass den Salt lieber weg.



Wenn du gleich anständig in JavaDoc dokumentieren würdest (was nicht großartig anders ist, als das, was du schon gemacht hast, nur dass es Konventionen folgt), dann würdest du dir das Doku-schreiben sparen und hättest schon jetzt, mit gleichem Aufwand eine entsprechende Dokumentation (ähnlich php.net). Solltest du dir schleunigst angewöhnen.
ähm.. ich kann den Salt schlecht in die Config schreiben.. denn für jeden User wird ne eigene Salt generiert..
acetox94 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche Freiwillige Lead-Sid Beruflich 0 05.02.2010 07:47
Suche einige Freiwillige coder m0nst3rkill3r Beitragsarchiv 0 29.07.2009 01:57
eine Suche definieren Tyrra PHP Tipps 2009 14 10.07.2009 09:39
Suche Freiwillige Helfer für Galerie-Seite Ritti1989 Beitragsarchiv 1 26.06.2009 13:18
Suche Webdesigner/Programierer für anspruchsvolles Projekt tommuc Beitragsarchiv 1 06.06.2009 14:48
[Erledigt] Suche Freiwillige für eine Dienstplansoftware seehundnz Beitragsarchiv 4 26.05.2009 21:34
Suche Tester für mein Newsscript Beitragsarchiv 32 02.09.2005 08:24
Suche Designer für Fantasy Homepage Beitragsarchiv 4 01.08.2005 13:06
Suche tester für News Script Beitragsarchiv 6 31.07.2005 15:45
Suche Programmierer für Homepage... Beitragsarchiv 0 11.01.2005 19:55
ich suche 2 freiwillige.. Sclot Server, Hosting und Workstations 14 02.01.2005 16:35
Suche jemanden der mit mir eine Homepage erstellt. Beitragsarchiv 45 06.09.2004 18:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
freiwillige tester, homepage kernel, kernel einstellung für homepage root, projekt suche jemanden website php 2011, php kernel schreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum