[web-doc] master: allowlist for tutorial filename characters

[email protected] (Peter Cowburn) Tue, 27 Jul 2021 13:37:36 +0000
Newsgroups php.doc.web
Message-ID <[email protected]>
Author: Peter Cowburn (salathe)
Date: 2021-07-27T14:34:47+01:00

Commit: https://github.com/php/web-doc/commit/e0d5dd0a6fb1b13b6f3bada396efc0cd37f947a8
Raw diff: https://github.com/php/web-doc/commit/e0d5dd0a6fb1b13b6f3bada396efc0cd37f947a8.diff

allowlist for tutorial filename characters

Changed paths:
  M  www/tutorial.php


Diff:

diff --git a/www/tutorial.php b/www/tutorial.php
index 776ea6c..0b17685 100644
--- a/www/tutorial.php
+++ b/www/tutorial.php
@@ -4,8 +4,8 @@
 
 $parsedown = new Parsedown();
 $chapter = isset($_GET['chapter']) ? $_GET['chapter'] : 'intro';
-$path = '../tutorial/'.str_replace('..', '', $chapter).'.md';
-// Very simple check against local file inclusion, maybe it could be done better way?
+$chapter = preg_replace("/[^a-z0-9-]/", "", $chapter);
+$path = '../tutorial/' . $chapter . '.md';
 
 if (file_exists($path)) {
     $content = file_get_contents($path);