xxSunFirexx
Grünschnabel
Wie bereits im Titel verraten arbeite ich derzeit an einem Großprojekt und das als Neuling.
Es geht hierbei um ein Internet-Portal das irgendwann für recht viele User herhalten soll. Genau aus diesem Grund will ich, dass ich dies von Anfang an(wenn auch dann langsam,weil Neuling) auf sicheren Füßen steht. Da ich euch nicht weiter mit überflüssigem nerven will gehts direkt ans eingemachte:
Achso,damit keine Unklarheiten auftreten,es geht hierbei um ein Rollen-online-Spiel(YES, its WoW )
1. Wie sollte eine Userdatenbank aussehen? Ich erkläre diese Frage: Sollte in einer tabelle "user" alle Informationen enthalten die selbigen Betreffen? Bisher steht in meiner Datenbank folgendes:
ID(Autoincrement+Primary)
Benutzername(mit dem sich eingeloggt wird)
Anzeigename(der dann für den Rest der Welt angezeigt wird)
Passwort(in md5 natürlich )
Email
Avatar(hier soll der grafikpfad rein,also eher ein "Forumavatar")
Charaktername
Charakterklasse
Skillungsrichtung1(spezialisierung innerhalb des spieles)
SKillungsrichtung2(siehe 1)
Permissions(die späteren zugriffsrechte im Forum)
InGilde(es wird ein seperates Menü für gildenmitglieder geben,das nur solche sehn sollen)
Rang(Administrator,Moderator,Community,Gildenmitglieder usw)
Ist diese Art "dienlich"? also die Frage ist eher : Macht es etwas aus(Performance technisch) ob die datenbank selber 5 Informationen enthält oder 20?
Auf der Seite an sich wird diese Datenbank vom Loginscript angesprochen und das wars eigentlich,da ich zb permissions in die session speichere,und die sich für gewöhnlich nicht verändern.
2. Ich erhalte über ein Registrierungsscript mehrere Daten die dann als variable in ein query sollen,ich habe bereits von XSS gehört und weiss nicht ob meine derzeitigen sicherheitsmaßnahmen reichen:
function clean($value)
{
htmlspecialchars($value);
trim($value);
strip_tags($value);
}
mysql_real_escape_string($registername);
clean($registername);
$registersql = "SELECT `username` FROM `user` WHERE `username` LIKE \"$registername\"";
Natürlich wurde im Vorfeld $_POST['username'] in die variable $username gepackt...
3. Soweit ich weiss,erlaubt mein server keinen PHP-Upload.... angeblich soll ich das per phpinfo(); herrausfinden.... welche zeile,bzw wo müsste ich da genau schauen?
4. Bei der Profileditierung stoße ich derzeit auf meine Programmiergrenzen.... Ich würde gerne einen UPDATE befehl konstruieren der nur das updated was auch wirklich verändert worden ist.... Heisst im Klartext: Ein Formular das den Namen und das passwort und sagen wir das Alter des Users angibt. Er(aus welchen gründen auch immer,gehn wir einfach mal von einer Fehleingabe aus) würde sich gerne ein Jahr älter machen. Es soll nun möglich sein dass er sein Alter anpassen kann, und sein Passwort+Username frei bleibt-> also kein (ich schreibs jetzt in kurzform)
Update user SET username,passwort,alter values xxsunfirexx,xxxxxx,17
sondern ein
update user set (wenn username vorhanden,dann username),(wenn passwort vorhanden,dann passwort),(wenn alter vorhanden,dann alter) values ......usw
ich denke es ist verständlich ausgedrückt
5. Ist es möglich als Neuling ein...sagen wir primitives Forum zu entwicklen? Also wirklich nur Grundfunktionen..... kein editieren kein gar nichts...einfach nur "Posten" und darauf dann wieder antworten können******
Theoretisch ist es ja nichts anderes als meine bisher(funktionierende) shoutbox auch.... dort wird einfach der username,der inhalt,die uhrzeit,das datum und halt eine id gespeichert und,nach meinen wünschen angezeigt?
Ich habe vor das dann später nach und nach zu erweitern,was aber auch gerne noch einige monate in anspruch nehmen darf,da ich es damit nicht all zu eilig habe
5.1 Sollte ich dann für jede "unterkategorie" eine eigene tabelle erstellen? heisst:
tabelle1: offtopic
tabelle2: gildeninternes
tabelle3: was anderes
oder lieber eine tabelle "topics" und dort alle deponieren mit ner eigenen spalte die sich zb "zugehörigkeit" nennt und dort dann per SELECT xy FROM topics where zugehörigkeit = gilde machen?
Ich glaub das wars dann vorerst... vielen dank schonmal im vorraus !
Es geht hierbei um ein Internet-Portal das irgendwann für recht viele User herhalten soll. Genau aus diesem Grund will ich, dass ich dies von Anfang an(wenn auch dann langsam,weil Neuling) auf sicheren Füßen steht. Da ich euch nicht weiter mit überflüssigem nerven will gehts direkt ans eingemachte:
Achso,damit keine Unklarheiten auftreten,es geht hierbei um ein Rollen-online-Spiel(YES, its WoW )
1. Wie sollte eine Userdatenbank aussehen? Ich erkläre diese Frage: Sollte in einer tabelle "user" alle Informationen enthalten die selbigen Betreffen? Bisher steht in meiner Datenbank folgendes:
ID(Autoincrement+Primary)
Benutzername(mit dem sich eingeloggt wird)
Anzeigename(der dann für den Rest der Welt angezeigt wird)
Passwort(in md5 natürlich )
Avatar(hier soll der grafikpfad rein,also eher ein "Forumavatar")
Charaktername
Charakterklasse
Skillungsrichtung1(spezialisierung innerhalb des spieles)
SKillungsrichtung2(siehe 1)
Permissions(die späteren zugriffsrechte im Forum)
InGilde(es wird ein seperates Menü für gildenmitglieder geben,das nur solche sehn sollen)
Rang(Administrator,Moderator,Community,Gildenmitglieder usw)
Ist diese Art "dienlich"? also die Frage ist eher : Macht es etwas aus(Performance technisch) ob die datenbank selber 5 Informationen enthält oder 20?
Auf der Seite an sich wird diese Datenbank vom Loginscript angesprochen und das wars eigentlich,da ich zb permissions in die session speichere,und die sich für gewöhnlich nicht verändern.
2. Ich erhalte über ein Registrierungsscript mehrere Daten die dann als variable in ein query sollen,ich habe bereits von XSS gehört und weiss nicht ob meine derzeitigen sicherheitsmaßnahmen reichen:
function clean($value)
{
htmlspecialchars($value);
trim($value);
strip_tags($value);
}
mysql_real_escape_string($registername);
clean($registername);
$registersql = "SELECT `username` FROM `user` WHERE `username` LIKE \"$registername\"";
Natürlich wurde im Vorfeld $_POST['username'] in die variable $username gepackt...
3. Soweit ich weiss,erlaubt mein server keinen PHP-Upload.... angeblich soll ich das per phpinfo(); herrausfinden.... welche zeile,bzw wo müsste ich da genau schauen?
4. Bei der Profileditierung stoße ich derzeit auf meine Programmiergrenzen.... Ich würde gerne einen UPDATE befehl konstruieren der nur das updated was auch wirklich verändert worden ist.... Heisst im Klartext: Ein Formular das den Namen und das passwort und sagen wir das Alter des Users angibt. Er(aus welchen gründen auch immer,gehn wir einfach mal von einer Fehleingabe aus) würde sich gerne ein Jahr älter machen. Es soll nun möglich sein dass er sein Alter anpassen kann, und sein Passwort+Username frei bleibt-> also kein (ich schreibs jetzt in kurzform)
Update user SET username,passwort,alter values xxsunfirexx,xxxxxx,17
sondern ein
update user set (wenn username vorhanden,dann username),(wenn passwort vorhanden,dann passwort),(wenn alter vorhanden,dann alter) values ......usw
ich denke es ist verständlich ausgedrückt
5. Ist es möglich als Neuling ein...sagen wir primitives Forum zu entwicklen? Also wirklich nur Grundfunktionen..... kein editieren kein gar nichts...einfach nur "Posten" und darauf dann wieder antworten können******
Theoretisch ist es ja nichts anderes als meine bisher(funktionierende) shoutbox auch.... dort wird einfach der username,der inhalt,die uhrzeit,das datum und halt eine id gespeichert und,nach meinen wünschen angezeigt?
Ich habe vor das dann später nach und nach zu erweitern,was aber auch gerne noch einige monate in anspruch nehmen darf,da ich es damit nicht all zu eilig habe
5.1 Sollte ich dann für jede "unterkategorie" eine eigene tabelle erstellen? heisst:
tabelle1: offtopic
tabelle2: gildeninternes
tabelle3: was anderes
oder lieber eine tabelle "topics" und dort alle deponieren mit ner eigenen spalte die sich zb "zugehörigkeit" nennt und dort dann per SELECT xy FROM topics where zugehörigkeit = gilde machen?
Ich glaub das wars dann vorerst... vielen dank schonmal im vorraus !
Zuletzt bearbeitet: