XSS过滤工具
专业的跨站脚本攻击防护和HTML安全过滤
输入HTML内容:
过滤选项
移除script标签
移除事件处理器 (onclick, onload等)
移除iframe标签
移除object和embed标签
转义HTML特殊字符
只保留安全标签
执行XSS过滤
复制结果
清空
加载测试XSS代码
过滤结果:
过滤统计
原始长度:
0
过滤后长度:
0
移除的script标签:
0
移除的事件处理器:
0
常见XSS攻击模式
<script>alert('XSS');</script>
<img src=x onerror=alert('XSS')>
<div onclick=alert('XSS')>点击我</div>
<iframe src=javascript:alert('XSS')></iframe>
XSS防护说明
跨站脚本攻击(XSS)
:是一种常见的Web安全漏洞,攻击者通过注入恶意脚本代码到网页中,当用户访问该页面时执行恶意代码。
过滤原理
:该工具通过移除危险标签、事件处理器,转义特殊字符等方式来防御XSS攻击。
安全建议
:始终对用户输入进行严格过滤,使用内容安全策略(CSP),避免直接拼接HTML代码。
点击我查看更多
背景XSS
动画XSS
提交
访问我们
<script>alert('HTML实体XSS');</script>
`.trim(); document.getElementById('htmlInput').value = testXSS; showToast('已加载测试XSS代码', 'info'); } // 更新统计显示 function updateStats(stats) { document.getElementById('originalLength').textContent = document.getElementById('htmlInput').value.length; document.getElementById('filteredLength').textContent = document.getElementById('filteredOutput').value.length; document.getElementById('removedScripts').textContent = stats.removedScripts; document.getElementById('removedEvents').textContent = stats.removedEvents; } // 初始化 document.addEventListener('DOMContentLoaded', () => { // 示例按钮点击事件 document.getElementById('testBtn').addEventListener('click', loadTestXSS); // 过滤按钮点击事件 document.getElementById('filterBtn').addEventListener('click', () => { const htmlInput = document.getElementById('htmlInput').value; if (!htmlInput.trim()) { showToast('请输入需要过滤的HTML内容', 'warning'); return; } // 创建过滤器实例 const filter = new XSSFilter({ removeScripts: document.getElementById('removeScripts').checked, removeEventHandlers: document.getElementById('removeEventHandlers').checked, removeIframes: document.getElementById('removeIframes').checked, removeObjectEmbed: document.getElementById('removeObjectEmbed').checked, htmlEntities: document.getElementById('htmlEntities').checked, allowedTagsOnly: document.getElementById('allowedTagsOnly').checked }); // 执行过滤 const filteredHtml = filter.filter(htmlInput); // 显示结果 document.getElementById('filteredOutput').value = filteredHtml; // 更新统计 const stats = filter.getStats(); updateStats(stats); // 显示过滤状态 const statusElement = document.getElementById('filterStatus'); if (stats.removedScripts > 0 || stats.removedEvents > 0 || stats.removedIframes > 0 || stats.removedObjects > 0) { statusElement.innerHTML = `
发现${stats.removedScripts + stats.removedEvents + stats.removedIframes + stats.removedObjects}个安全风险并已过滤
`; } else { statusElement.innerHTML = `
未发现明显安全风险
`; } showToast('XSS过滤完成', 'success'); }); // 复制按钮点击事件 document.getElementById('copyBtn').addEventListener('click', () => { const filteredOutput = document.getElementById('filteredOutput').value; if (!filteredOutput.trim()) { showToast('没有可复制的内容', 'warning'); return; } copyToClipboard(filteredOutput); }); // 清空按钮点击事件 document.getElementById('clearBtn').addEventListener('click', () => { document.getElementById('htmlInput').value = ''; document.getElementById('filteredOutput').value = ''; document.getElementById('filterStatus').innerHTML = ''; // 重置统计 document.getElementById('originalLength').textContent = '0'; document.getElementById('filteredLength').textContent = '0'; document.getElementById('removedScripts').textContent = '0'; document.getElementById('removedEvents').textContent = '0'; showToast('已清空', 'info'); }); showToast('XSS过滤工具已就绪', 'success'); });