一個單一 PHP 檔案即可部署的線上代碼編輯器,整合 Ace Editor,支援語法高亮、檔案樹瀏覽、建立/刪除/重命名/預覽檔案、密碼保護、Session 管理等完整功能。
preg_replace('#\$pwd = false;#', '$pwd = "'.$hash.'";', $code)function is_logged() {
return isset($_SESSION['pwd']) && defined('DEFAULT_PWD')
&& $_SESSION['pwd'] === DEFAULT_PWD;
}
單一入口透過 $_POST action 分派:
file:讀取檔案內容(回傳內容、語法模式)dir:獲取目錄樹 HTMLaction=save_file:儲存檔案del:刪除檔案/目錄(遞迴)create:新建檔案/目錄rename:重命名$_POST['file'] 直接拼接 dirname(__FILE__),../../etc/passwd 可突破// 1. 路徑限制在專案根目錄
$root = realpath(__DIR__ . '/project_root');
$requested = realpath($root . $_POST['file']);
if (strpos($requested, $root) !== 0) die('Access denied');
// 2. CSRF Token
session_start();
if (empty($_SESSION['csrf'])) $_SESSION['csrf'] = bin2hex(random_bytes(32));
if ($_POST['csrf'] !== $_SESSION['csrf']) die('Invalid CSRF token');
// 3. 密碼雜湊升級
$hash = password_hash($password, PASSWORD_ARGON2ID);
password_verify($input, $hash);