Login über zwei Domains hinweg
bearbeitet von Regina Schaukrug> Solange ich auf einer Domain bleibe funktioniert dieses Problemlos. Sobald ich jetzt die zweite Domain aufrufe, die auf die gleiche Datenbank zugreift bekomme ich das Login angezeigt, sprich ich bin auf der anderen Seite nicht eingeloggt.
Ich fand:
~~~
$session = session_id();
~~~
Das ist also klar. Denn die Session gilt immer nur für eine Domain. Und das ist auch gut so.
Doch dann fand ich noch:
> ~~~php, bad
> SELECT user_id FROM zugangsdaten
> WHERE user_nickname=?
> AND user_passwort=?
> AND user_aktiv=?
> AND user_onoff=?");
>
> …
>
> $stmt->bind_param("ssss", $userMail, $pw, $ak, $uk);
> ~~~
Du speicherst also das Passwort im Klartext. **Das ist gefährlich.** Benutze hierfür die Funktion [password_hash()](http://php.net/manual/de/function.password-hash.php) und deren Schwestern [password_verify()](http://php.net/manual/de/function.password-verify.php), [password_needs_rehash()](http://php.net/manual/de/function.password-needs-rehash.php).
Falls Du auf den Gedanke kommst, die MySQL/MariaDB-interne Funktion [PASSWPORD()](https://mariadb.com/kb/en/library/password/) zu benutzen, beachte die Warnung:
~~~txt, bad
The PASSWORD() function is used for hashing passwords for use in authentication by the MariaDB server. It is not intended for use in other applications.
~~~
Um die für Dein Vorhaben günstigste Vorgehensweise auswählen zu können brauche ich noch Informationen:
- Liegen beide Domains **dauerhaft** im Sinne "für immer und ewig" auf dem gleichen Server?
- **Hast Du für beide HTTPS?**
Eine Lösung wird übrigens nicht trivial sein. **Dein Vorhaben wird also einigen Aufwand verursachen.** Sind die Domains nicht "für immer und ewig" auf dem gleichen Server ist der halt nur größer.
Die Frage ist: Willst Du das WIRKLICH? oder geht es Dir nur um die Behebung einer eher kleinen Unbequemlichkeit?
**Beginne in jedem Fall damit, das ernsthafte Problem mit den Klartextpasswörtern zu beheben.**
[Hier mal was älteres von mir zu dem Thema (PDF)](https://code.fastix.org/Projekte/PHP%3Alogin-system/PHP-Anwendung%20und%20Praxis-Loginsystem.pdf). Das hat aber mit PHP 7.x weiter Gültigkeit.
Login über zwei Domains hinweg
bearbeitet von Regina Schaukrug> Solange ich auf einer Domain bleibe funktioniert dieses Problemlos. Sobald ich jetzt die zweite Domain aufrufe, die auf die gleiche Datenbank zugreift bekomme ich das Login angezeigt, sprich ich bin auf der anderen Seite nicht eingeloggt.
Ich fand:
~~~
$session = session_id();
~~~
Das ist also klar. Denn die Session gilt immer nur für eine Domain. Und das ist auch gut so.
Doch dann fand ich noch:
> ~~~php, bad
> SELECT user_id FROM zugangsdaten
> WHERE user_nickname=?
> AND user_passwort=?
> AND user_aktiv=?
> AND user_onoff=?");
>
> …
>
> $stmt->bind_param("ssss", $userMail, $pw, $ak, $uk);
> ~~~
Du speicherst also das Passwort im Klartext. **Das ist gefährlich.** Benutze hierfür die Funktion [password_hash()](http://php.net/manual/de/function.password-hash.php) und deren Schwestern [password_verify()](http://php.net/manual/de/function.password-verify.php), [password_needs_rehash()](http://php.net/manual/de/function.password-needs-rehash.php).
Falls Du auf den Gedanke kommst, die MySQL/MariaDB-interne Funktion [PASSWPORD()](https://mariadb.com/kb/en/library/password/) zu benutzen, beachte die Warnung:
~~~txt, bad
The PASSWORD() function is used for hashing passwords for use in authentication by the MariaDB server. It is not intended for use in other applications.
~~~
Um die für Dein Vorhaben günstigste Vorgehensweise auswählen zu können brauche ich noch Informationen:
- Liegen beide Domains **dauerhaft** im Sinne "für immer und ewig" auf dem gleichen Server?
- **Hast Du für beide HTTPS?**
Eine Lösung wird übrigens nicht trivial sein. Dein Vorhaben wird also einigen Aufwand verursachen. Sind die Domains nicht "für immer und ewig" auf dem gleichen Server ist der halt nur größer.
Die Frage ist: Willst Du das WIRKLICH? oder geht es Dir nur um die Behebung einer eher kleinen Unbequemlichkeit?
Dann beginne damit, das ernsthafte Problem mit den Klartextpasswörtern zu beheben.
[Hier mal was älteres von mir zu dem Thema (PDF)](https://code.fastix.org/Projekte/PHP%3Alogin-system/PHP-Anwendung%20und%20Praxis-Loginsystem.pdf). Das hat aber mit PHP 7.x weiter Gültigkeit.
Login über zwei Domains hinweg
bearbeitet von Regina Schaukrug> Solange ich auf einer Domain bleibe funktioniert dieses Problemlos. Sobald ich jetzt die zweite Domain aufrufe, die auf die gleiche Datenbank zugreift bekomme ich das Login angezeigt, sprich ich bin auf der anderen Seite nicht eingeloggt.
Ich fand:
~~~
$session = session_id();
~~~
Das ist also klar. Denn die Session gilt immer nur für eine Domain. Und das ist auch gut so.
Doch dann fand ich noch:
~~~sql
SELECT user_id FROM zugangsdaten
WHERE user_nickname=?
AND user_passwort=?
AND user_aktiv=?
AND user_onoff=?");
~~~
Du speicherst also das Passwort im Klartext. Das ist gefährlich. Benutze hierfür die Funktion [password_hash()](http://php.net/manual/de/function.password-hash.php) und deren Schwestern [password_verify()](http://php.net/manual/de/function.password-verify.php), [password_needs_rehash()](http://php.net/manual/de/function.password-needs-rehash.php).
Falls Du auf den Gedanke kommst, die MySQL/MariaDB-Interne Funktion [PASSWPORD()](https://mariadb.com/kb/en/library/password/) zu benutzen, beachte die Warnung:
The PASSWORD() function is used for hashing passwords for use in authentication by the MariaDB server. It is not intended for use in other applications.
Um die für Dein Vorhaben günstigste Vorgehensweise auswählen zu können brauche ich noch Informationen:
- Liegen beide Domains **dauerhaft** im Sinne "für immer und ewig" auf dem gleichen Server?
- **Hast Du für beide HTTPS?**
Eine Lösung wird übrigens nicht trivial sein. Dein Vorhaben wird also einigen Aufwand verursachen. Sind die Domains nicht "für immer und ewig" auf dem gleichen Server ist der halt nur größer.
Die Frage ist: Willst Du das WIRKLICH? oder geht es Dir nur um die Behebung einer eher kleinen Unbequemlichkeit?
Dann beginne damit, das ernsthafte Problem mit den Klartextpasswörtern zu beheben.
[Hier mal was älteres von mir zu dem Thema (PDF)](https://code.fastix.org/Projekte/PHP%3Alogin-system/PHP-Anwendung%20und%20Praxis-Loginsystem.pdf). Das hat aber mit PHP 7.x weiter Gültigkeit.
Login über zwei Domains hinweg
bearbeitet von Regina Schaukrug> Solange ich auf einer Domain bleibe funktioniert dieses Problemlos. Sobald ich jetzt die zweite Domain aufrufe, die auf die gleiche Datenbank zugreift bekomme ich das Login angezeigt, sprich ich bin auf der anderen Seite nicht eingeloggt.
Ich fand:
~~~
$session = session_id();
~~~
Das ist also klar. Denn die Session gilt immer nur für eine Domain. Und das ist auch gut so.
Doch dann fand ich noch:
~~~sql
SELECT user_id FROM zugangsdaten
WHERE user_nickname=?
AND user_passwort=?
AND user_aktiv=?
AND user_onoff=?");
~~~
Du speicherst also das Passwort im Klartext. Das ist gefährlich. Benutze hierfür die Funktion [password_hash()](http://php.net/manual/de/function.password-hash.php) und deren Schwestern [password_verify()](http://php.net/manual/de/function.password-verify.php), [password_needs_rehash()](http://php.net/manual/de/function.password-needs-rehash.php).
Falls Du auf den Gedanke kommst, die MySQL/MariaDB-Interne Funktion [PASSWPORD()](https://mariadb.com/kb/en/library/password/) zu benutzen, beachte die Warnung:
The PASSWORD() function is used for hashing passwords for use in authentication by the MariaDB server. It is not intended for use in other applications.
Um die für Dein Vorhaben günstigste Vorgehensweise auswählen zu können brauche ich noch Informationen:
- Liegen beide Domains **dauerhaft** im Sinne "für immer und ewig" auf dem gleichen Server?
- **Hast Du für beide HTTPS?**
Eine Lösung wird übrigens nicht trivial sein. Dein Vorhaben wird also einigen Aufwand verursachen. Sind die Domains nicht "für immer und ewig" auf dem gleichen Server ist der halt nur größer.
Die Frage ist: Willst Du das wirklich?
Dann beginne damit, das ernsthafte Problem mit den Klartextpasswörtern zu beheben.
[Hier mal was älteres von mir zu dem Thema (PDF)](https://code.fastix.org/Projekte/PHP%3Alogin-system/PHP-Anwendung%20und%20Praxis-Loginsystem.pdf). Das hat aber mit PHP 7.x weiter Gültigkeit.
Login über zwei Domains hinweg
bearbeitet von Regina Schaukrug> Solange ich auf einer Domain bleibe funktioniert dieses Problemlos. Sobald ich jetzt die zweite Domain aufrufe, die auf die gleiche Datenbank zugreift bekomme ich das Login angezeigt, sprich ich bin auf der anderen Seite nicht eingeloggt.
Ich fand:
~~~
$session = session_id();
~~~
Das ist also klar. Denn die Session gilt immer nur für eine Domain. Und das ist auch gut so.
Doch dann fand ich noch:
~~~sql
SELECT user_id FROM zugangsdaten
WHERE user_nickname=?
AND user_passwort=?
AND user_aktiv=?
AND user_onoff=?");
~~~
Du speicherst also das Passwort im Klartext. Das ist gefährlich. Benutze hierfür die Funktion [password_hash()](http://php.net/manual/de/function.password-hash.php) und deren Schwestern [password_verify()](http://php.net/manual/de/function.password-verify.php), [password_needs_rehash()](http://php.net/manual/de/function.password-needs-rehash.php).
Falls Du auf den Gedanke kommst, die MySQL/MariaDB-Interne Funktion [PASSWPORD()](https://mariadb.com/kb/en/library/password/) zu benutzen, beachte die Warnung:
The PASSWORD() function is used for hashing passwords for use in authentication by the MariaDB server. It is not intended for use in other applications.
Um die für Dein Vorhaben günstigste Vorgehensweise auswählen zu können brauche ich noch Informationen:
- Liegen beide Domains **dauerhaft** im Sinne "für immer und ewig" auf dem gleichen Server?
- **Hast Du für beide HTTPS?**
Eine Lösung wird übrigens nicht trivial sein. Dein Vorhaben wird also einigen Aufwand verursachen. Sind die Domains nicht "für immer und ewig" auf dem gleichen Server ist der halt nur größer.
Die Frage ist: Willst Du das wirklich?
Dann beginne damit, das ernsthafte Problem mit den Klartextpasswörtern zu beheben.