在Debian系统中,JS日志通常分散在前端(浏览器控制台)和后端(Web服务器、应用服务器)中。需先确保日志被集中收集:
access.log和error.log(路径通常为/var/log/nginx/或/var/log/apache2/),记录JS请求的URL、状态码、Referer等信息;应用层日志(如Node.js、Express)需开启详细日志记录,捕获前端发送的请求详情。ReferenceError、TypeError)、未捕获的异常(通过window.onerror处理器),并将日志发送到后端服务器或第三方平台。journalctl(systemd日志系统)查看系统级JS相关日志(如journalctl -u nginx --since "1 hour ago"),过滤出与JS相关的错误或异常请求。通过分析日志中的异常指标,快速定位潜在恶意请求:
4XX(如404未找到、403禁止访问)或5XX(服务器内部错误)状态码,可能表明恶意扫描(如尝试访问不存在的JS文件路径)或攻击(如SQL注入、XSS)。script、select、from、echo、bash、.sh等关键字(常见于XSS、命令注入攻击);SyntaxError(语法错误)、EvalError(eval函数滥用)或URIError(URI处理错误),可能是恶意脚本注入的结果。使用工具提升日志分析效率,识别复杂恶意模式:
grep:过滤关键日志(如grep -i "404" /var/log/nginx/access.log查找404错误;grep -E "script|bash" /var/log/app.log查找恶意关键字);awk/sed:统计请求频率(如awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr统计IP请求次数);journalctl:过滤系统日志中的JS相关错误(如journalctl -p 3 -u nginx --since "1 hour ago"查看紧急级别的Nginx日志)。结合IP行为和威胁情报,进一步确认恶意请求:
前端JS代码中的错误往往是恶意请求的“信号”:
window.onerror捕获未处理的JS错误(如window.onerror = function(message, source, lineno, colno, error) { console.error("JS Error:", message, "at", source); }),将错误信息发送到后端日志;try...catch捕获异常(如try { const data = JSON.parse(userInput); } catch (error) { console.error("Invalid JSON:", error); }),记录异常详情;npm audit扫描项目依赖)。通过以上方法,可以系统性地识别Debian系统中JS日志中的恶意请求,及时采取阻断、修复等措施,保障系统安全。