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 |