v1
This commit is contained in:
parent
84da0c9656
commit
dad99e12c5
4 changed files with 142 additions and 2 deletions
30
index.php
Normal file
30
index.php
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* smzint/Messages (c) schmamazon.com 2025
|
||||||
|
*/
|
||||||
|
|
||||||
|
include('../Auth/index.php');
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>smzint/Messages</h1>
|
||||||
|
<div><h2>Willkommen zu Messages <?php echo $uname; ?>!</h2><br>
|
||||||
|
<p>
|
||||||
|
Über diesen Dienst können Ende-zu-Ende verschlüsselte Nachrichten zwischen Schmamazon Nutzern ausgetauscht werden.<br>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<?php
|
||||||
|
if(!include('ready.php')){
|
||||||
|
echo "Ihr Account wurde noch nicht für Messages eingerichtet.";
|
||||||
|
}else{
|
||||||
|
echo "Ihr Account ist bereit für die Nutzung von Messages.";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
110
init.php
Normal file
110
init.php
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* smzint/Messages (c) schmamazon.com 2025
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(include('ready.php')){
|
||||||
|
echo "FEHLER: Ihr Account scheint bereits inizialisiert worden zu sein.";
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$username = filter_var($_POST["username"], FILTER_SANITIZE_STRING);
|
||||||
|
if (empty($username)) {
|
||||||
|
//Prüft ob Eingabe leer ist
|
||||||
|
$nameErr = "Benutzername is required";
|
||||||
|
} else {
|
||||||
|
// Prüft auf illegale Zeichen
|
||||||
|
if (!preg_match("/^[a-z0-9]+$/",$username)) {
|
||||||
|
$nameErr = "Nur Kleinbuchstaben und Zahlen sind zugelassen.";
|
||||||
|
}else{
|
||||||
|
//Prüft auf Mindestlänge
|
||||||
|
if(mb_strlen($username)<4){
|
||||||
|
$nameErr = "Mindestens vier (4) Zeichen.";
|
||||||
|
}else{
|
||||||
|
//Prüft, ob Nutzername frei ist
|
||||||
|
include('search.php');
|
||||||
|
if(username($username) == FALSE){
|
||||||
|
$nameErr = "Der Nutzername kann verwendet werden.";
|
||||||
|
//Prüft ob angegebenes Passwort richtig ist
|
||||||
|
$password = filter_var($_POST["password"], FILTER_SANITIZE_STRING);
|
||||||
|
if(password_verify($password, $upassword_hash)){
|
||||||
|
//Alle Schritte erfolgreich. Nun müssen die Schlüssel generiert werden. Der private key muss außerdem mit $password verschlüsselt werden. Dann müssen der $username, $publicKey und der verschlüsselte $privateKey in die Datenbank gespeichert werden.
|
||||||
|
|
||||||
|
// Hinweis: Die Erstellung mit openssl scheint missbilligt zu werden -> Investigieren
|
||||||
|
// Erstellung durch sodium ist zuvor jedoch fehlgeschlagen (Extension problems)
|
||||||
|
$privateKeyobject = openssl_pkey_new(['private_key_bits' => 2048, 'private_key_type' => OPENSSL_KEYTYPE_RSA]);
|
||||||
|
openssl_pkey_export($privateKeyobject, $privateKey);
|
||||||
|
$keyDetails = openssl_pkey_get_details($privateKeyobject);
|
||||||
|
$publicKey = $keyDetails['key'];
|
||||||
|
//$privateKey muss noch symetrisch mit $password verschlüsselt werden
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//FLUSH EVERYTHING IN DATABASE NOW!!!!
|
||||||
|
|
||||||
|
global $dbservername;
|
||||||
|
global $dbusername;
|
||||||
|
global $dbpassword;
|
||||||
|
global $dbname;
|
||||||
|
|
||||||
|
$conn = new mysqli($dbservername, $dbusername, $dbpassword, $dbname);
|
||||||
|
if ($conn->connect_error) {
|
||||||
|
die("Server Error");
|
||||||
|
}
|
||||||
|
$sql = "INSERT INTO smz_messages_users (uid, username, publicKey, privateKey) VALUES ('$uid', '$username', '$publicKey', '$privateKey')";
|
||||||
|
|
||||||
|
if ($conn->query($sql) === TRUE) {
|
||||||
|
echo "ACCOUNT ERFOLGREICH EINGERICHTET\nSCHLIEẞEN SIE DIESEN TAB UMGEHEND!";
|
||||||
|
} else {
|
||||||
|
echo "Error: " . $sql . "<br>" . $conn->error;
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn->close();
|
||||||
|
|
||||||
|
/*
|
||||||
|
PHP Fatal error: Uncaught Error: Call to undefined function sodium_crypto_box_keypair()
|
||||||
|
scheint irgendwie an xampp zu liegen
|
||||||
|
php.ini bereits angepasst bringt absolut nichts
|
||||||
|
ist wahrscheinlich zeitverschwendung
|
||||||
|
einfach mal auf strato testen
|
||||||
|
|
||||||
|
UPDATE: funktioniert auch auf Strato nicht
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$passwdErr = "Das Passwort ist falsch. Achten Sie darauf Ihr aktuelles Auth Passwort einzugeben.";
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$nameErr = "Dieser Benutzername ist leider bereits vergeben.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
<div>
|
||||||
|
<div>Auf dieser Seite wird Ihr vorhandener Auth Account für die Nutzung mit Messages eingerichtet.<br>Dies umfasst zwei Schritte: <li>Im Ersten legen Sie Ihren Benutzernamen fest.</li><li>Im Zweiten erzeugt unser System verschiedene Kryptographische Schlüssel, um die Ende-zu-Ende Verschlüsselung zu ermöglichen. Sie müssen hierfür Ihr aktuelles Passwort eingeben.</li> Sie können danach Messages nutzen.</div><br><div><p>Nun legen Sie Ihren persönlichen Benutzernamen für Messages an. Andere Benutzer sehen Sie mit diesem Namen.</p><p><strong>Er muss einmalig sein.</strong><br>Es sind nur <strong>Kleinbuchstaben und Zahlen</strong> zugelassen und der Nutzername muss mindestens vier Zeichen lang sein.</p></div>
|
||||||
|
<form action="init.php" method="post">
|
||||||
|
<label for="username">Benutzername:</label><br>
|
||||||
|
<input type="text" id="username" name="username" value="<?php echo $username; ?>" required>
|
||||||
|
<span class="error">* <?php echo $nameErr;?></span><br>
|
||||||
|
<label for="username">Aktuelles Auth Passwort:</label><br>
|
||||||
|
<input type="password" id="password" name="password" required>
|
||||||
|
<span class="error">* <?php echo $passwdErr;?></span><br>
|
||||||
|
<input type="submit">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<scipt>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document
|
||||||
|
.addEventListener("DOMContentLoaded",
|
||||||
|
function () {
|
||||||
|
alert('ACHTUNG:\nDiese Seite ist instabil und fehleranfällig!');
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
include('../Auth/index.php');
|
include('../Auth/index.php');
|
||||||
|
|
||||||
include('/smzint/Auth/db.ini.php');
|
include('../Auth/db.ini.php');
|
||||||
|
|
||||||
$conn = new mysqli($dbservername, $dbusername, $dbpassword, $dbname);
|
$conn = new mysqli($dbservername, $dbusername, $dbpassword, $dbname);
|
||||||
if ($conn->connect_error) {
|
if ($conn->connect_error) {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* smzint/Messages (c) schmamazon.com 2025
|
* smzint/Messages (c) schmamazon.com 2025
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include('/smzint/Auth/db.ini.php');
|
include('../Auth/db.ini.php');
|
||||||
|
|
||||||
function username($uname){
|
function username($uname){
|
||||||
global $dbservername;
|
global $dbservername;
|
||||||
|
|
Loading…
Add table
Reference in a new issue