Selaa lähdekoodia

Don't load code when not in sandbox.

Henning Dieterichs 2 vuotta sitten
vanhempi
commit
f8bdfcbaba
1 muutettua tiedostoa jossa 9 lisäystä ja 1 poistoa
  1. 9 1
      website/src/runner/index.ts

+ 9 - 1
website/src/runner/index.ts

@@ -8,6 +8,12 @@ import { IMessage, IPreviewState } from "../shared";
 import "./style.scss";
 
 window.addEventListener("message", (event) => {
+	const isInSandbox = window.origin === "null";
+	if (!isInSandbox) {
+		// To prevent someone from using this html file to run arbitrary code in non-sandboxed context
+		console.error("not in sandbox");
+		return;
+	}
 	const e = event.data as IMessage | { kind: undefined };
 	if (e.kind === "initialize") {
 		initialize(e.state);
@@ -43,7 +49,9 @@ async function initialize(state: IPreviewState) {
 		eval(state.js);
 	} catch (err) {
 		const pre = document.createElement("pre");
-		pre.appendChild(document.createTextNode(`${err}`));
+		pre.appendChild(
+			document.createTextNode(`${err}: ${(err as any).state}`)
+		);
 		document.body.insertBefore(pre, document.body.firstChild);
 	}
 }