一、JavaScript库YUI版本过低(认识vue项目中的index.html文件)
没有压缩得,里面包含YUI,打包之后会出现这种文件
解决办法:jsencrypt.min.js文件中不含有YUI,故可以用jsencrypt.min.js
1、将jsencrypt.min.js文件拷贝到utils目录中
2、在index.html中引入jsencrypt.min.js文件
注意:在生产环境中,不要将jsencrypt.min.js放到src目录下,因为如果放到src目录下,通过npm run build打包之后,打包后的dist目录中没有jsencrypt.min.js文件。
根据config/index.js的build配置,如下所示:
module.exports = {
build: {
...
assetsSubDirectory: 'static',
...
}
}
assetsSubDirectory: 'static'表示把所有的静态资源打包到 dist
下的 assets
文件夹下,只有放到assets目录下的文件才会被打包到dist目录下。
<script src="static/jsencrypt.min.js"></script>
把jsencrypt.min.js放到static目录下:
打包之后如下所示:
知识拓展:为什么在index.html中引入jsencrypt.min.js?
新建一个vue项目,在public目录下会生成index.html文件。
main.js是我们项目的入口文件,主要作用是初始化vue实例并使用需要的插件,这里new Vue代表新建vue对象。App.vue是我们的主组件,所有页面都是在App.vue下进行切换的。vue中的页面都是单页面,但是都是index.html上承载的,这就是为什么你能在index.html中看到id为app的div,其实就是和App.vue对应,App.vue里面的标签将会把路由相关内容(index.js)渲染在这个地方,总之index.html是项目运行的入口。
项目加载的过程是index.tml->main.js->app.vue->index.js->单页面(XXX.vue)
index.html内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>vue_project_01</title>
</head>
<body>
<noscript>
<strong>We're sorry but vue_project_01 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
二、发现Apache Tomcat examples目录
问题:Apache Tomcat 默认安装后 Web 目录下存在 servlets 和 JSP 的示例文件。攻击者可利用此文件操作 Sessions 和 Cookie,获取管理员权限。
解决办法:建议禁止 examples 的公开访问权限或者直接删除 examples 样例目录下的资源。
三、Apache Tomcat 安全漏洞
问题:Apache Tomcat 是美国阿帕奇(Apache)软件基金会下属的 Jakarta 项目的一款轻量级 Web 应用服务器。Apache Tomcat 中的 WebSocket 存在安全漏洞,该漏洞源于程序没有正确验证 payload 的长度。攻击者可利用该漏洞造成拒绝服务(无限循环)。
解决办法:建议通过升级打补丁修补漏洞,补丁获取地址: