• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

2 Fragen zu PHP /mailing und SQL /sicherheit

digleu

New member
Also ein paar N00b Fragen:
1. Ist es eine Sicherheitlücke, wenn ich (für ein User-Login auf meine Page) den User und das Pass in einer Datenbank speichere ? Weil dann müsste der User, der sich einloggen will, ja SELECT Rechte für diesen Table haben und könnte er dann nicht auch mit der mysql.exe connecten und sich die ganze Liste ausgeben lassen?

2. Was muss ich installieren (oder tun), damit ich mit PHP E-Mails versenden kann?

thx im Voraus
mfg DiGleu!
 
zu 1. : Also, um zur Datenbank zu connecten, brauchst man den Benutzernamen und das Passwort. Aber es ist sinnvoll das Passwort verschlüsselt zu speichern. (man weiss ja nie, ob der Administrator der Datenbank nicht scheisse gebaut hat und andere Benutzer auch auf deine Datenbank zugreifen kann)

zu 2. : is sehr einfach! Hier eine Anleitung: http://www.php4-forum.de/befehle/mail.htm

mfG Enrique
 
Also erstmal thx für die page aber jetzt nochmal zu meinem ersten Prob: Wenn ich per PHP ja auf ne DB zugreifen will muss ich erstmal ne Verbindung herstellen mit
$dbcnx = @mysql_connect($dbserver, $user, $pass);
und da muss ich ja dann nen Benutzer angeben, der SELECT Befehle für die Datenbank hat, in der Benutzernamen und Passwörter stehen. Sonst kann ich die eingabe des Benutzers (für das Login auf der Page) ja nicht vergleichen ... oder wie ?

und mir is noch ne Frage eingefallen:
3. Wenn ich irgendwo "eingelogt" bin dann übergebe ich ja jedesmal, wenn ich von einer page zur nächsten gehe den Benutzernamen und das Kennwort über die URL, aber wenn ich das jetzt über nen ganz normalen Link machen will, dann kann man den ja unschönerweise sehen und dann hab ich das einfach immer mit formularen und method="post" gemacht aber das is doch nich die lösung oder ?
 
Nope, guck dir mal meinen Thread mit dem Titel Header?? an, da hatte ich nämlich noch das selbe PRoblem. Also entweder du speicherst das mit Hilfe vo Cookies, oder per Sessions, die wiederum Cookies oder Übertragung via URL benutzen.

Jo, du machst die select anweisung, aber solange du kein echo setzt wird nix ausgegeben und die User können keine daten sehen, also vergleiche die daten und dann gib erst aus, und es sollte kein Sicherheitsloch vorliegen!
 
Also, du erstellest eine Verbindung zu der Datenbank mit dem Benutzernamen und dem Passwort für die Datenbank.

Aus einer Tabelle in der datenbank liest du dann den Benutzernamen und das Passwort für deine Seite.

Zugriff auf die Tabelle und somit auf die Benutzerdaten für deine Seite hast nur Du, der Administrator der Datenbank und normalerweise sonst keiner mehr. Das Speichernn von Benutzerdaten in einer Datenbank ist somit relativ sicher.

Eine Sicherheitslücke besteht allerdings, wenn du Benutzername und Kennwort übergibst. Dafür gibt es bessere Varianten: 1.: Cookies 2.: Session-IDs

zu 2.: Du erstellst, wenn der Benutzer sich eingeloggt hat, einen String aus verschieden beliebigen (ausser definierten Zeichen) Zeichen (bzw. nur Ziffern) und speicherst diese in der Datenbank. übergibst diesen. Am Anfang jedes Seitenaufrufs fragst du nur noch ab, ob die ID, die du mit übergibst, gültig ist.
Abgelaufenen IDs werden natürlich gelöscht.


Falls Dir das jetzt alles zu hoch ist, dann findest Du hier eine fertige Version mit Anleitung:
http://www.php4-forum.de/beispiele/login.htm

mfG Enrique
 
Also langsam, erstmal setze ich mit (hab n eigenen mySQL Server)

GRANT SELECT ON users TO checker IDENTIFIED BY "anything";

wobei users der table is, wo die user-pass kombis drin stehen und checker der user, der die Eingabe kontrollieren soll (mit dem ich mich später im PHP in die DB einloge) und "anything" das Passwort für ihn und dann soll kein Sicherheitsloch entstehen ???
Das glaub ich irgendwie nich
also erklär mal wie du das gemeint hast :):):)
 
Andere Frage - Ich möchte das eingegebene Passwort verschlüsseln, damit man hier evtl. Risiken umgehen kann. md5 Verfahren lässt sich ja nimmer entschlüsseln, was ist wenn also der User sein PWD vergessen hat - ich müsste als zuvor bei der ersten eingabe und bei jeder Änderung das Original PWD kopieren und in die Database eintragen und dann erst das md5 Verfahren verwenden. Nutzt mir das dann überhaupt noch was??
 
also zum Thema select: Der select-Aufruf wird sicherlich innerhalb eines php-Scriptes sein, oder? Und da php-scripte serverseitig interpretiert werden, kann man clientseitig das Passwort nicht mehr lesen, da der php-Interpretor nur ein einfaches HTML-Doc zurückgibt.

@wagi: Verschlüsselungsverfahren sind eh nur ein Tropfen auf dem heißen Stein ;)

Aber zum Thema Passwort vergessen: Ich persönlich finde die Variante, dass das Passwort an eine vom Benutzer vorher definierte Email-Adresse geschickt wird, als sicherste Variante.

mfG Enrique
 
Zurück
Oben