rabin 2 weeks ago
parent
commit
144b79fe05
3 changed files with 30 additions and 24 deletions
  1. 2 1
      boot.php
  2. 1 0
      src/Dever/Helper/Secure.php
  3. 27 23
      src/Dever/Project.php

+ 2 - 1
boot.php

@@ -231,9 +231,10 @@ class Dever
     {
         //$value = json_encode($value, JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK | JSON_PRESERVE_ZERO_FRACTION);
         $value = json_encode($value, JSON_UNESCAPED_UNICODE);
+        /*
         if (strpos($value, '<')) {
             $value = Dever\Helper\Secure::xss($value);
-        }
+        }*/
         return $value;
     }
     public static function json_decode($value)

+ 1 - 0
src/Dever/Helper/Secure.php

@@ -215,6 +215,7 @@ class Secure
             return $data;
         }
         $data = htmlspecialchars_decode($data);
+        $data = str_replace('\/', '/', $data);
         $data = str_replace(array('&', '<', '>'), array('&', '<', '>'), $data);
         $data = preg_replace('/(&#*\w+)[\x00-\x20]+;/u', '$1;', $data);
         $data = preg_replace('/(&#x*[0-9A-F]+);*/iu', '$1;', $data);

+ 27 - 23
src/Dever/Project.php

@@ -23,10 +23,12 @@ class Project
             $host = DEVER_APP_HOST;
             if (strpos($host, '/src/' . DEVER_APP_NAME)) {
                 $host = explode('/src/' . DEVER_APP_NAME, $host)[0] . '/';
-            } elseif (strpos($host, '/package/' . DEVER_APP_NAME)) {
+            } elseif (strpos($host, '/app/' . DEVER_APP_NAME)) {
+                $host = explode('/app/' . DEVER_APP_NAME, $host)[0] . '/';
+            }elseif (strpos($host, '/package/' . DEVER_APP_NAME)) {
                 $host = explode('/package/' . DEVER_APP_NAME, $host)[0] . '/';
             }
-            self::write($host, 'package');self::write($host, 'src');
+            self::write($host, 'package');self::write($host, 'src');self::write($host, 'app');
             self::$content[DEVER_APP_NAME]['url'] = DEVER_APP_HOST;
             if (isset(self::$content['manage'])) {
                 $manage = self::$content['manage'];
@@ -46,31 +48,33 @@ class Project
     public static function write($host, $name)
     {
         $dir = DEVER_PROJECT_PATH . $name . '/';
-        $data = scandir($dir);
-        foreach ($data as $v) {
-            if (empty(self::$content[$v]) && is_dir($dir . '/' . $v) && $v !== '.' && $v !== '..') {
-                if (is_file($dir . $v . '/index.php')) {
-                    $k = $name . '/' . $v . '/';
-                    self::$content[$v] = array();
-                    if (strstr($name, 'package')) {
-                        if (strstr($name, 'package/manage')) {
-                            unset(self::$content[$v]);
-                            $v = 'manage';
-                            self::$content[$v] = array();
-                            self::$content[$v]['path'] = DEVER_PATH . $name . '/';
-                        } elseif($v == 'manage') {
-                            self::$content[$v]['path'] = DEVER_PATH . $k;
-                            $k .= 'api/';
+        if (is_dir($dir)) {
+            $data = scandir($dir);
+            foreach ($data as $v) {
+                if (empty(self::$content[$v]) && is_dir($dir . '/' . $v) && $v !== '.' && $v !== '..') {
+                    if (is_file($dir . $v . '/index.php')) {
+                        $k = $name . '/' . $v . '/';
+                        self::$content[$v] = array();
+                        if (strstr($name, 'package')) {
+                            if (strstr($name, 'package/manage')) {
+                                unset(self::$content[$v]);
+                                $v = 'manage';
+                                self::$content[$v] = array();
+                                self::$content[$v]['path'] = DEVER_PATH . $name . '/';
+                            } elseif($v == 'manage') {
+                                self::$content[$v]['path'] = DEVER_PATH . $k;
+                                $k .= 'api/';
+                            } else {
+                                self::$content[$v]['path'] = DEVER_PATH . $k;
+                            }
+                            self::$content[$v]['setup'] = DEVER_PROJECT_PATH . $k;
                         } else {
-                            self::$content[$v]['path'] = DEVER_PATH . $k;
+                            self::$content[$v]['path'] = DEVER_PROJECT_PATH . $k;
                         }
-                        self::$content[$v]['setup'] = DEVER_PROJECT_PATH . $k;
+                        self::$content[$v]['url'] = $host . $k;
                     } else {
-                        self::$content[$v]['path'] = DEVER_PROJECT_PATH . $k;
+                        self::write($host, $name . '/' . $v);
                     }
-                    self::$content[$v]['url'] = $host . $k;
-                } else {
-                    self::write($host, $name . '/' . $v);
                 }
             }
         }