Kaynağa Gözat

added check for null whitelist

Steven Andrés 6 yıl önce
ebeveyn
işleme
8fbdb69d8a
1 değiştirilmiş dosya ile 15 ekleme ve 10 silme
  1. 15 10
      lib/Controller.php

+ 15 - 10
lib/Controller.php

@@ -196,16 +196,21 @@ class Controller
      */
     private function _create()
     {
-        // Check whitelist if allowed to create
-        $whitelist = explode(',', $this->_conf->getKey('whitelist_paste_creation', 'traffic'));
-        if (($option = $this->_conf->getKey('header', 'traffic')) !== null) {
-            $httpHeader = 'HTTP_' . $option;
-            if (array_key_exists($httpHeader, $_SERVER) && !empty($_SERVER[$httpHeader])) {
-                // compare source IP from web server with whitelist
-                if(!in_array($_SERVER[$httpHeader], $whitelist)) {
-                    $this->_return_message(1, I18n::_('Your IP is not authorized to create pastes.'));
-                    return;
-                }                
+        // Check if whitelist feature is enabled
+        if (($option = $this->_conf->getKey('whitelist', 'traffic')) !== null) {
+            // Parse whitelist into array
+            $whitelist = explode(',', $this->_conf->getKey('whitelist_paste_creation', 'traffic'));
+            // Check for source IP in HTTP header
+            if (($option = $this->_conf->getKey('header', 'traffic')) !== null) {
+                $httpHeader = 'HTTP_' . $option;
+                // Grab source IP from HTTP header (if it exists)
+                if (array_key_exists($httpHeader, $_SERVER) && !empty($_SERVER[$httpHeader])) {
+                    // Check if source IP reported from HTTP header is in whitelist array
+                    if (!in_array($_SERVER[$httpHeader], $whitelist)) {
+                        $this->_return_message(1, I18n::_('Your IP is not authorized to create pastes.'));
+                        return;
+                    }                
+                }
             }
         }