在JavaScript中过滤<script>
标签通常是为了防止跨站脚本攻击(XSS)。XSS攻击是一种常见的Web安全漏洞,攻击者通过在网页中注入恶意脚本来窃取用户数据或进行其他恶意操作。
以下是一个简单的示例,展示如何在JavaScript中过滤<script>
标签:
function sanitizeInput(input) {
// 使用正则表达式移除<script>标签及其内容
const sanitized = input.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
return sanitized;
}
// 示例用法
const userInput = '<p>Hello</p><script>alert("XSS");</script>';
const safeInput = sanitizeInput(userInput);
console.log(safeInput); // 输出: <p>Hello</p>
原因:
解决方法:
function encodeHTML(str) {
return str.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
// 示例用法
const userInput = '<p>Hello</p><script>alert("XSS");</script>';
const safeInput = encodeHTML(userInput);
console.log(safeInput); // 输出: <p>Hello</p><script>alert("XSS");</script>
通过这些方法,可以有效防止XSS攻击,确保Web应用的安全性。
领取专属 10元无门槛券
手把手带您无忧上云