From e372dd6925058eddf34e5b2b5ca59a5707befb37 Mon Sep 17 00:00:00 2001 From: mcramer <m.cramer@pixcept.de> Date: Fri, 11 Oct 2013 02:58:52 -0400 Subject: [PATCH] Implemented: - javascript hooks prepared (onAfterContentLoad is first available hook) - new abstract class for GET and POST requests - new js.d directory that is included into main template --- interface/lib/classes/validate_dkim.inc.php | 41 ++++++++++++++++++++++++++++++----------- 1 files changed, 30 insertions(+), 11 deletions(-) diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php index fccd457..12c0945 100644 --- a/interface/lib/classes/validate_dkim.inc.php +++ b/interface/lib/classes/validate_dkim.inc.php @@ -42,19 +42,38 @@ /* Validator function for private DKIM-Key */ function check_private_key($field_name, $field_value, $validator) { - $dkim_enabled=$_POST['dkim']; - if ($dkim_enabled == 'y') { - if (empty($field_value)) return $this->get_error($validator['errmsg']); - exec('echo "'.$field_value.'"|openssl rsa -check',$output,$result); - if($result != 0) return $this->get_error($validator['errmsg']); - } - } + $dkim_enabled=$_POST['dkim']; + if ($dkim_enabled == 'y') { + if (empty($field_value)) return $this->get_error($validator['errmsg']); + exec('echo '.escapeshellarg($field_value).'|openssl rsa -check',$output,$result); + if($result != 0) return $this->get_error($validator['errmsg']); + } + } /* Validator function for DKIM Path */ function check_dkim_path($field_name, $field_value, $validator) { if(empty($field_value)) return $this->get_error($validator['errmsg']); if (substr(sprintf('%o', fileperms($field_value)),-3) <= 600) - return $this->get_error($validator['errmsg']); - } - -} + return $this->get_error($validator['errmsg']); + } + + /* Check function for DNS-Template */ + function check_template($field_name, $field_value, $validator) { + $dkim=false; + foreach($field_value as $field ) { if($field == 'DKIM') $dkim=true; } + if ($dkim && $field_value[0]!='DOMAIN') return $this->get_error($validator['errmsg']); + } + + /* Validator function for $_POST */ + function validate_post($key,$value) { + switch ($key) { + case 'public': + if (preg_match("/(^-----BEGIN PUBLIC KEY-----)[a-zA-Z0-9\r\n\/\+=]{1,221}(-----END PUBLIC KEY-----(\n|\r)$)/",$value) === 1) { return true; } else { return false; } + break; + case 'private': + if (preg_match("/(^-----BEGIN RSA PRIVATE KEY-----)[a-zA-Z0-9\r\n\/\+=]{1,850}(-----END RSA PRIVATE KEY-----(\n|\r)$)/",$value) === 1) { return true; } else { return false; } + break; + } + } +} + -- Gitblit v1.9.1