我正在使用CodeMirror设置一个简单的基于 Web 的代码编辑器,以帮助学生学习基本的 HTML、CSS 和 JavaScript。
我希望学生们能够保存他们的代码,这样它就可以在一个独立的浏览器窗口中看到,它有自己的链接,可以与朋友和家人共享以展示他们的工作(即 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>
,但我想做好准备,以防万一将恶意内容放入代码编辑器进行保存。
关于如何安全地保存和显示他们的代码的任何建议?有没有办法将每个用户的文件夹与其他用户文件夹和网站的其余部分隔离/沙箱?
也许没有安全的方法可以做到这一点,我不应该允许我不信任的任何人将代码保存到我的服务器,但如果有一种安全的方法可以做到这一点......那对这个项目来说会很棒!如果没有,我会想出别的办法。
感谢您提供的任何帮助或见解!-标记