Nikto扫描报出Vue前端有安全漏洞,但我没写后端啊?
我用Nikto扫了本地开发的Vue项目,结果报了一堆“OSVDB”和“CGI”漏洞,可我这明明只是个纯前端静态页面,连后端接口都还没接,怎么会有这些漏洞?是不是误报?
我试过把项目build后用http-server起服务再扫,还是同样的问题。下面是我App.vue里的一段代码:
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
难道Nikto把静态资源当成了可执行脚本?这结果到底该信不该信?
先给你吃颗定心丸:这些基本全是误报,不用太担心。
Nikto这玩意儿的工作原理是拿一个巨大的"已知漏洞特征库"往你服务器上怼,不管你实际有没有部署这些东西。它会扫描各种常见的CGI路径、管理后台入口、老旧PHP脚本之类的东西,比如
/cgi-bin/、/admin/、/phpmyadmin/这种。你一个纯前端Vue项目,编译出来就是一堆静态HTML、CSS、JS文件,哪来的CGI脚本?根本执行不了服务端逻辑。你用http-server起的服务,它就是个静态文件服务器,不会解析任何服务端脚本,所以那些OSVDB和CGI相关的漏洞报告可以直接无视。
真正值得你关注的是:第一,如果你用了Vue Router的history模式,要注意别让人通过路径遍历访问到不该访问的文件;第二,生产环境部署时记得配置好CSP和X-Frame-Options这些HTTP头;第三,别在前端代码里硬编码任何敏感信息,比如API密钥、token之类的,因为所有人都能看到。
如果你实在想减少这些噪音,可以用
-Tuning参数让Nikto跳过某些检测类别,或者干脆换成OWASP ZAP的AJAX爬虫模式,对前端项目友好很多。总之放心睡吧,你这段代码没毛病。