学生が基本的な HTML、CSS、および JavaScript を学習できるように、CodeMirrorを使用して単純な Web ベースのコード エディターをセットアップしています。
学生が自分のコードを保存できるようにしたいので、スタンドアローンのブラウザー ウィンドウに表示され、友人や家族と共有して自分の作品を披露することができます (例: mydomain.com/users/ their-ユーザー名/test.html)。
現在、次の PHP を使用していますが、私の使用$content
はまったく安全ではないことがわかっています。
if ($_POST['type'] == 'save') {
$content = stripslashes($_POST['code']);
$username = addslashes(strip_tags($_POST['username']))); //i.e. markrummel
$filename = addslashes(strip_tags($_POST['filename']))); //i.e. test, index
$ext = addslashes(strip_tags($_POST['filetype']))); //i.e. html, css, js
$path = '/users/' . $username . '/';
$URL = $path . $filename . '.' . $ext;
file_put_contents($URL, $content);
}
ほとんどの場合$content
、安全な HTML、CSS、または JavaScript のよう<p>My name is Mark</p>
にする必要があります。
コードを安全に保存して表示する方法について何か提案はありますか? 各ユーザーのフォルダーを他のユーザー フォルダーや Web サイトの残りの部分から隔離/サンドボックス化する方法はありますか?
おそらくこれを行うための安全な方法はなく、信頼できない人がコードをサーバーに保存することを許可するべきではありませんが、これを行うための安全な方法があれば...それはこのプロジェクトにとって素晴らしいことです! そうでない場合は、別の方法を考えます。
あなたが提供できる助けや洞察をありがとう!-マーク