Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions js_security_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
function renderHtmlVulnerable(userInput) {
const output = document.getElementById('user-content-area');
if (output) {
output.innerHTML = userInput;
}
}

function renderHtmlSafe(userInput) {
const output = document.getElementById('user-content-area');
if (output) {
output.textContent = userInput;
}
}

function executeCodeVulnerable(userInput) {
console.log("Executing vulnerable code...");
eval(userInput);
}

function processDataSafe(userInput) {
try {
const data = JSON.parse(userInput);
console.log("Safely processed data:", data);
} catch (e) {
console.error("Input is not valid JSON.");
}
}

function checkRedosVulnerable(input) {
const re = /^(a+)+$/;
return re.test(input);
}

function checkRedosSafe(input) {
const re = /^a+$/;
return re.test(input);
}


function main() {
const maliciousHtml = "<img src=x onerror=alert('XSS')>";
const maliciousCode = "alert('Code Injection');";

renderHtmlVulnerable(maliciousHtml);
renderHtmlSafe(maliciousHtml);

processDataSafe('{"status": "ok"}');

checkRedosVulnerable("a".repeat(20) + "b");
checkRedosSafe("a".repeat(20) + "b");
}

main();