bernd commited on 2011-12-21 16:51:54
Zeige 1 geänderte Dateien mit 10 Einfügungen und 1 Löschungen.
git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@2097 87cf0b9e-d624-0410-a070-f6ee81989793
| ... | ... |
@@ -169,9 +169,18 @@ function newkey($pubkey, $handle) |
| 169 | 169 |
system_failure("Der eingegebene Name enthält ungültige Zeichen. Bitte nur Buchstaben, Zahlen, Unterstrich, Binderstrich und Punkt benutzen.");
|
| 170 | 170 |
} |
| 171 | 171 |
|
| 172 |
- // FIXME: Muss man den SSH-Key auf Plausibilität prüfen? Aus Sicherheitsgründen vermutlich nicht. |
|
| 173 | 172 |
$keyfile = $key_dir.'/'.$handle.'.pub'; |
| 174 | 173 |
file_put_contents($keyfile, $pubkey); |
| 174 |
+ |
|
| 175 |
+ $proc = popen("/usr/bin/ssh-keygen -l -f '{$keyfile}'", 'r');
|
|
| 176 |
+ $output = fread($proc, 512); |
|
| 177 |
+ pclose($proc); |
|
| 178 |
+ if (preg_match('/.* is not a public key file.*/', $output)) {
|
|
| 179 |
+ unlink($keyfile); |
|
| 180 |
+ system_failure('Der angegebene SSH-Key scheint ungültig zu sein.');
|
|
| 181 |
+ } |
|
| 182 |
+ |
|
| 183 |
+ |
|
| 175 | 184 |
git_wrapper('add '.$keyfile);
|
| 176 | 185 |
|
| 177 | 186 |
$userconfig = $config_dir . '/' . $username . '.conf'; |
| 178 | 187 |