Hallo zusammen,
Ich bin gerade dabei ein Webinterface für ein NAS zu schreiben. Für die SQL-Injections habe ich schon entsprechende Sicherheitsmaßnamen getroffen. Es werden nur bestimmte sichere Zeichen durchgelassen und Passwörter werden bas64 encodiert, bevor diese verschlüsselt und gespeichert werden.
Nur besteht nun folgendes Problem: Ich möchte über das Webinterface Systempasswörter und Sambapasswörter festlegen und prüfen lassen. Da ich keine andere Möglichkeit gefunden habe, mache ich das mit system() bzw. exec(). Nur wie kann ich hier Injections abfangen? Reicht escapeshellarg Oder sollte ich lieber escapeshellcmd benutzen?
Hier ein ausschnitt aus meinem Code, der vielleicht besser erklärt, was ich meine:
1 2 3 4 5 6 7 | function linux_function_error($exec) { return exec($exec." 2>&1 "); } $shell = '(echo '.$passwd.'; echo '.$passwd.') | sudo smbpasswd -s '.$this->user; $fehler = linux_function_error($shell); |