ich würde gerne einen VPN-Server auf user-pass Authentifizierung mit MySQL umstellen, um ein einfach und schnell zu verwaltendes VPN zu erstellen.
Dazu hab ich das hier gefunden.
Das Login-Script:
Code: Alles auswählen
#!/bin/bash
. /etc/openvpn/script/config.sh
##Authentication
user_id=$(mysql -h$HOST -P$PORT -u$USER -p$PASS $DB -sN -e "select user_id from user where user_id = '$username' AND user_pass = '$password' AND user_enable=1 AND user_start_date != user_end_date AND TO_DAYS(now()) >= TO_DAYS(user_start_date) AND (TO_DAYS(now()) <= TO_DAYS(user_end_date) OR user_end_date='0000-00-00')")
##Check user
[ "$user_id" != '' ] && [ "$user_id" = "$username" ] && echo "user : $username" && echo 'authentication ok.' && exit 0 || echo 'authentication failed.'; exit 1
Wäre hier nicht eine einfache SQL-Injection möglich?
Mich würde interessieren, wie ich das verhindern kann.
Die zweite Sache ist die: Ich muss ja auch das Passwort irgendwie in der Datenbank speichern.
md5 alleine reicht mir aber nicht, da es sich zu leicht knacken lässt.
Wäre da in etwa so etwas möglich:
sha2(<salt>sha2($password +<zweiter Salt>))
Wie stell ich das an?