前端输入过滤真能防XSS吗?我这样写安全吗?
我在React项目里做用户评论功能,担心XSS攻击,就对输入做了个简单过滤,但不确定这样够不够。比如把script标签替换成空字符串,但听说还有其他绕过方式?
下面是我现在的处理代码:
const sanitizeInput = (input) => {
return input.replace(/<scriptb[^<]*(?:(?!</script>)<[^<]*)*</script>/gi, '');
};
// 使用示例
const CommentBox = ({ userInput }) => {
const safeContent = sanitizeInput(userInput);
return <div dangerouslySetInnerHTML={{ __html: safeContent }} />;
};
这样写是不是太天真了?有没有更靠谱的前端过滤方案?
百里金利
Lv1
你这个问题,光靠替换script标签远远不够。用库吧,像DOMPurify这种专门对付XSS的库才是靠谱的。直接上代码:
点赞
2026-03-25 12:01