initialized

This commit is contained in:
S60W79 2023-06-07 22:36:21 +02:00
commit 91b9a11771
8 changed files with 125 additions and 0 deletions

BIN
.README.md.kate-swp Normal file

Binary file not shown.

1
.hMail.txt Normal file
View file

@ -0,0 +1 @@

22
README.md Normal file
View file

@ -0,0 +1,22 @@
# Online Abstimmungs scripe
Diese PHP scripte liegen im Webordner unter [stura.link/lehrpreis](stura.link/lehrpreis) und generieren Formularlinks.
Hier die Prozedur...
## Wenn der Studi eine @mailbox.tu-dresden.de Adreesse hat
Dann wird die Mailadresse gehashed und in einer Liste (Datei) abgelegt. Aus einem Passwort und einem Salt wird ein Hash erstellt und an die Formular URL angehängt.
Das Limesurvey Formular wird den Parameterwert später in ein verstecktes Textfeld einfügen und somit in den Umfragewerten speichern.
Der Formular Link wird dem Studi per Mail gesendet. Eine verknüpfung zwischen dem Schlüssel (bzw. Formularlink) und der Mailadresse oder deren Hash wird **nicht** gespeichert.
Die Abstimmung wird verweigert, wenn der Mailhash bereits auf der Sperrliste steht, oder eine unbekannte E-mail Adresse (@gmail, etc.) verwendet wird.
## Wenn der Studi eine @tu-dresden.de oder @ifsr.de Adresse hat
Der Studi wird gebeten, einer manuellen Überprüfung zuzustimmen. Stimmt er zu, wird an einem FSRler ein Datensatz per Mail gesendet. Wir überprüfen dann mittels der ZiH Datenbank (alias Opal) ob der Studi noch studiert. Ist das der Fall wird der vorbereitete Schlüssel mit Formularlink gesendet. Der E-Mail Hash wird auf die oben genannte Sperrliste geschrieben, sodass eine erneute Abstimmung ebenfalls nicht möglich ist.
Die Anfrage E-Mails werden natürlich ebenfalls nach der in der Datenschutzerklärung angegebenen Löschfrist gelöscht.
## Ist das eine sichere Wahl?
Die FSR Admins hätten technisch gesehen die Möglichkeit, die Wahl durch auslesen des Passwortes und Löschen von Stimmen im Limesurvey zu manipulieren. Jedoch ist die Wahl solange ihr dem FSR traut Datensparsam.

31
check.php Normal file
View file

@ -0,0 +1,31 @@
<html>
<head>
<title>
E-Mail sending
</title>
<link rel="stylesheet" href="../dark-yellow.css">
<body id="bd">
<?php
$empfaenger = $_GET["mailto"];
$pwd = "ZENSIERT";
$salt = rand(1, 100000);
$token = hash('ripemd160', $pwd.$salt);
$mailHash = hash('ripemd160', strtolower(explode("@",$empfaenger)[0]));
echo strpos(file_get_contents('../../.hMail.txt'), $mailHash);
//nicht bereits abgesendet (kein hash match) und eine @mailbox addr.
$betreff = 'Anfrage Lehrpreis';
$nachricht = "Key ".$token."\nMail ".$empfaenger."\nMailhash ".$mailHash;
$nachricht = wordwrap($nachricht, 70, "\r\n");
$header = 'From: fsr@ifsr.de' . "\r\n" .
'Reply-To: '.$empfaenger. "\r\n" .
'X-Mailer: PHP/' . phpversion();
//mail senden
mail("marco.lehner@ifsr.de", $betreff, $nachricht, $header);
//hash speichern
//Erfolgsmeldung
echo "<h1>Request sent successfully.</h1><h1>Anfrage erfolgreich versendet.</h1>Wir werden Ihnen eine Mail senden und schreiben ob die Anfrage erfolgreich war.<br>We will send a Mail and write there if the request was successfull.</body></html>";
?>

BIN
dsgvo_lpDE.pdf Normal file

Binary file not shown.

BIN
dsgvo_lpEN.pdf Normal file

Binary file not shown.

20
index.php Normal file
View file

@ -0,0 +1,20 @@
<html>
<head>
<title>Lehrpreis</title>
<link rel="stylesheet" href="../dark-yellow.css">
</head>
<body id="bd">
<div id="textBx">
<h1>Lehrpreis/Teaching award</h1>
Hier kannst du über die Lehrpreisvergabe abstimmen. Damit nur Studierende abstimmen, gib hier bitte deine TU Adresse ein (Vorname.Nachname@mailbox.tu-dresden.de).<br>Der Link für das Abstimmungformular wird dir anschließend zugesendet.<br>
Es wird nicht gespeichert, welche Person für was abstimmt hat. Die Daten, wer abgestimmt hat und für was abgestimmt wurde werden getrennt gespeichert.<br>
<a href="dsgvo_lpDE.pdf">Für weitere Informationen dazu lies bitte unsere Datenschutzerklärung.</a><br><br>
Here you can vote for the teaching award. To ensure that only students vote, please enter your TU address here (Vorname.Nachname@mailbox.tu-dresden.de).<br>
The link for the voting form will be sent to you afterwards.<br>
It will not be saved which person voted for what. The data who voted and what was voted for will be stored separately.<br>
<a href="dsgvo_lpEN.pdf">For more information please read our privacy policy.</a><hr>
<form method='post' action='preis.php'>
E-Mail:<input type="text" name="mailto" /> <input type="submit" value="Link senden|Send the Link" />
</form>
</body>

51
preis.php Normal file
View file

@ -0,0 +1,51 @@
<html>
<head>
<title>
E-Mail sending
</title>
<link rel="stylesheet" href="../dark-yellow.css">
<body id="bd">
<?php
$empfaenger = $_POST["mailto"];
$pwd = "ZENSIERT";
$salt = rand(1, 100000);
// generate an authkey
$token = hash('ripemd160', $pwd.$salt);
//mailhash which will be used for double vote check -> only hashes stuff before @tu-dresden or @mailbox.tu-dresden to avoid double vote in case of aliases.
$mailHash = hash('ripemd160', strtolower(explode("+",explode("@",$empfaenger)[0])[0]));
if(strpos($empfaenger, "@mailbox.tu-dresden.de") != false and !strpos(file_get_contents('../../.hMail.txt'), $mailHash)){
echo strpos(file_get_contents('../../.hMail.txt'), $mailHash);
//nicht bereits abgesendet (kein hash match) und eine @mailbox addr.
$betreff = 'Formular: Lehrpreise';
$nachricht = "Hallo.\nHier ist die Umfrage für die Lehrpreis Wahl: https://bildungsportal.sachsen.de/umfragen/limesurvey/index.php/488672?lang=de&authkey=".$token."\nVielen Dank für deine Beteiligung!\n\nHi.\nHere is the Link for the teaching award voting: https://bildungsportal.sachsen.de/umfragen/limesurvey/index.php/488672?lang=de&authkey=".$token."\nThanks alot for your participation!";
$nachricht = wordwrap($nachricht, 80, "\r\n");
$header = 'From: fsr@ifsr.de' . "\r\n" .
'Reply-To: fsr@ifsr.de' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
//mail senden
mail($empfaenger, $betreff, $nachricht, $header);
//hash speichern
file_put_contents("../../.hMail.txt", $mailHash."\n", FILE_APPEND);
//Erfolgsmeldung
echo "<h1>Success, please check your mail.</h1><h1>Mail erfolgreich versendet.</body></html>";
}
else{
if(strpos($empfaenger, "@tu-dresden.de") != false or strpos($empfaenger, "@ifsr.de") != false){
echo "<div class='textBx'><h1>Request/Nachfrage</h1>
Da deine Mail Adresse keine @mailbox Adresse ist, würden wir gerne überprüfen, ob du noch studierst.<br>
Wenn du mit der Überprüfung einverstanden bist, bestätige das bitte unten.<br>
Wir werden das mittels der ZiH Datenbank abgleichen und - solltest du Student:in sein, dir den Umfragelink zusenden.<br>
Auch trotz dieser Überprüfung wird nicht abgespeichert, welches Umfrageergebnis zu welcher E-mail Adresse gehört.<br><br>
Since your email address is not an @mailbox address, we would like to check if you are still a student.<br>
If you agree with the verification, please confirm below.<br>
We will check this against the ZiH database and - if you are a student - send you the survey link.<br>Even with this check, we will not save which survey result belongs to which email address.<hr>
<a href='check.php?mailto=".$empfaenger."'>Ich stimme der Überprüfung zu./I do agree with the check.</a></div>
</body></html>";
}else{
echo "<h1>Falsche Mail Adresse oder bereits abgestimmt</h1><h1>Mail Adress wrong or missing or allready voted.</h1>Bitte gebe deine TU Email Adresse an!<br>Please enter your University Mail adress!</body></html>";
}
}
?>