Kaynağa Gözat

Fix load blog posts in bengine

Andy Baugh 6 yıl önce
ebeveyn
işleme
713d5b069f
2 değiştirilmiş dosya ile 7 ekleme ve 1 silme
  1. 6 0
      sys/admin/index.php
  2. 1 1
      templates/default/admin/bengine.inc

+ 6 - 0
sys/admin/index.php

@@ -30,6 +30,12 @@
     if( empty($args['app']) || $args['app'] == 'config' ) {
         $kontent = "$themedir/admin/settings.inc";
     } elseif ($args['app'] == 'blog') {
+        if(!empty($args['get_fragment'])) {
+            # Need to sanitize
+            $path = realpath("$basedir/blog/".$args['get_fragment']);
+            if(strpos($path, "$basedir/blog") !== 0 ) die("Forbidden: Tried to load $path, but $basedir/blog is not the start of the real path.");
+            die(file_get_contents("$basedir/blog/".$args['get_fragment']));
+        }
         $kontent = "$themedir/admin/bengine.inc";
     } elseif ($args['app'] == 'microblog') {
         $kontent = "$themedir/admin/mbengine.inc";

+ 1 - 1
templates/default/admin/bengine.inc

@@ -110,7 +110,7 @@
       <input type=\"submit\" name=\"mod\" value=\"Delete Post\" class=\"coolbutton\">
      </form>
     </div>";
-   $JSAIDS.="document.getElementById('link".$postincrementer."').addEventListener('click',function () {loadpost('".$val."','innerHTML".$postincrementer."',false);});\nwindow.postsLoaded['innerHTML".$postincrementer."'] = false;";
+   $JSAIDS.="document.getElementById('link".$postincrementer."').addEventListener('click',function () {loadpost('index.php?app=blog&get_fragment=".urlencode($val)."','innerHTML".$postincrementer."',false);});\nwindow.postsLoaded['innerHTML".$postincrementer."'] = false;";
   }
  }
 print "<script type=\"text/javascript\">\n