HTML Editor Security Validation

Modified on: Tue, 24 Feb, 2026 at 7:18 AM

Overview

We’ve added security validation to the HTML Code Editor inside:

  • Forms

  • Surveys

  • Quizzes

This update prevents unsafe JavaScript from being saved. It protects accounts from:

  • Cross-site scripting (XSS)

  • Cookie theft

  • Token/session hijacking

  • Account takeover attempts

If unsafe code is detected, the system blocks the save action and displays an error message.


TABLE OF CONTENTS


How It Works

When editing custom HTML:

  1. Open Form / Survey / Quiz Builder

  2. Add an HTML element

  3. Click Edit HTML

  4. Enter your code

The editor automatically scans the code in real time.

If a security issue is found:

  • A red error message appears below the editor

  • The Save button is disabled

  • You must remove the unsafe code before saving


What Is Blocked

The editor blocks high-risk JavaScript patterns that can expose sensitive data.

1. Accessing Cookies

Blocked:

document.cookie

Also blocked:

document['cookie'] window['document']['cookie']

Cookies may contain authentication data. Accessing them can lead to account compromise.


2. Using eval()

Blocked:

eval("alert('hello')")

eval() executes arbitrary strings as code and can be used to hide malicious scripts.


3. Using new Function()

Blocked:

new Function('return document.cookie')

This dynamically executes string-based code and poses the same risks as eval().


4. Using setTimeout() With a String

Blocked:

setTimeout("alert('hi')", 1000)

Allowed:

setTimeout(function () { alert('hi') }, 1000)

Passing a string causes the browser to evaluate it as code.


5. Using setInterval() With a String

Blocked:

setInterval('checkStatus()', 5000)

Allowed:

setInterval(() => checkStatus(), 5000)

6. Reading From localStorage

Blocked:

localStorage.getItem("authToken")

Reading from localStorage may expose sensitive session or authentication data.

Allowed:

localStorage.setItem("theme", "dark") localStorage.removeItem("temp") localStorage.clear()

What Is Allowed

The following are not blocked:

  • Standard HTML

  • Safe JavaScript logic

  • Arrow functions

  • Function references in timers

  • Writing to localStorage

  • sessionStorage usage


Important Notes

  • Detection is case-insensitive (eval, EVAL, etc.).

  • If the same issue appears multiple times, only one error message is shown.

  • Empty HTML fields are allowed.

  • Pure HTML (without scripts) is allowed.


If Your Code Is Being Blocked

To resolve the issue:

  • Remove any direct cookie access

  • Avoid eval() or new Function()

  • Use function references instead of string-based timers

  • Do not read authentication or session data from localStorage

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article