031-安全开发-JS应用WebPack打包器第三方库JQuery安装使用安全检测

031-安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

Untitled

#知识点:

1、三方库-JQuery-使用&安全
2、打包器-WebPack-使用&安全

演示案例:

➢打包器-WebPack-使用&安全
➢第三方库-JQuery-使用&安全

#为什么使用-WebPack

  • 创建WebPack,并创建目录src在目录下创建1.js 2.js

  • 1.js

    function test(){console.log('test');
    }
    
  • 2.js

    test();
    
  • 在创建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"><title>Document</title>
    </head>
    <body>**<script src="src/2.js"></script><script src="src/1.js"></script>**
    </body>
    </html>
    
  • 由于js相互依赖的顺序不同,造成无法执行

Untitled

使用 Webpack 的主要原因:

  1. 模块化支持:Webpack 支持将应用程序拆分为模块,使开发人员能够使用模块化的方式组织和管理代码。模块化能够提高代码的可维护性、重用性和可测试性。
  2. 资源打包:Webpack 可以将项目中的各种资源(例如 JavaScript、CSS、图像等)视为模块,并将它们打包成一个或多个最终的静态资源文件。这样可以减少网络请求的次数,提高应用程序的加载性能。
  3. 代码分割:Webpack 支持将应用程序的代码分割成多个块(chunks),并在需要时按需加载。这种代码分割的技术可以提高应用程序的初始加载速度,并减小用户需要下载的初始文件大小。
  4. 资源优化:Webpack 提供了丰富的插件和工具生态系统,可以进行各种资源优化和转换,例如压缩代码、处理样式预处理器、优化图像等。这些优化可以减小资源文件的大小,提高应用程序的性能。
  5. 开发环境支持:Webpack 提供了强大的开发环境支持,包括开发服务器、热模块替换(Hot Module Replacement)、源代码映射等功能。这些功能可以提升开发效率,加快开发周期。

#打包器-WebPack-使用&安全

参考:https://mp.weixin.qq.com/s/J3bpy-SsCnQ1lBov1L98WA
Webpack是一个模块打包器。在Webpack中会将前端的所有资源文件都作为模块处理。它将根据模块的依赖关系进行分析,生成对应的资源。

五个核心概念:

  1. 【入口(entry)】:指示webpack应该使用哪个模块,来作为构建内部依赖图开始。
  2. 【输出(output)】:在哪里输出文件,以及如何命名这些文件。
  3. 【Loader】:处理那些非JavaScript文件(webpack 自身只能解析 JavaScript和json)。webpack 本身只能处理JS、JSON模块,如果要加载其他类型的文件(模块),就需要使用对应的loader。
  4. 【插件(plugins)】:执行范围更广的任务,从打包到优化都可以实现。
  5. 【模式(mode)】:有生产模式production和开发模式development。

webpack使用:

1、创建需打包文件

  • 创建WebPack,并创建目录src在目录下创建js目录在js目录下创建sum.js count.js

Untitled

  • sum.js

    export default function sum(x,y){return x+y;
    }
    
  • count.js

    export default function count(x,y){return x-y;
    }
    
  • 在src目录下创建与js同级mian.js

    import count from "./js/count";
    import sum from "./js/sum";console.log(sum(1,2));
    console.log(count(1,2));
    
  • 在创建src同级文件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"><title>Document</title>
    </head>
    <body><script src="main.js"></script></body>
    </html>
    
  • 报错Cannot use import statement outside a module,尝试在不支持模块的环境中使用 ES6 的 import 打包语句造成无法执行;

    Untitled

2、安装webpack库**npm i webpack webpack-cli -g**

Untitled

3、创建webpack配置文件

  • 创建src同级文件webpack.config.js不能改名称
// 引入path模块,用于处理文件路径
const path = require('path');// Webpack配置对象
module.exports = {**// 指定入口文件,即Webpack从这个文件开始构建依赖图entry: './src/main.js',**// 指定输出配置output: {// 输出的文件路径,使用path.resolve确保路径的正确性path: path.resolve(__dirname, 'dist'),// 输出的文件名filename: 'bundle.js',// 在每次构建前清理输出目录clean: true,},// 指定打包模式,可以是 'development' 或 'production'mode: "development", // 或者 "production"//mode:"production",
};
  • entry: 指定入口文件,即Webpack从哪个文件开始构建依赖关系图。
  • output: 指定输出的目录和文件名,以及是否在每次构建前清理输出目录。
  • mode: 指定打包的模式,可以是 ‘development’ 或 ‘production’。
  • development 模式下会启用一些开发工具,容易造成源码泄露
  • production 模式下会进行代码优化,代码极简化

4、运行webpack打包命令**npx webpack**

Untitled

  • 打包成功后,在index.html中将引用的代码切换为打包好的**./dist/bundle.**
<body><script src="./dist/bundle.js"></script>
</body>
  • 运行成功,并回显定义的两个函数计算结果

Untitled

webpack安全:

1、WebPack源码泄漏-模式选择

  • development 模式下会启用一些开发工具,容易造成源码泄露
  • production 模式下会进行代码优化,代码极简化

Untitled

Untitled

2、模糊提取安全检查-PacketFuzzer

https://github.com/rtcatc/Packer-Fuzzer

原生态JS:前端语言直接浏览器显示源代码
NodeJS:服务段语言浏览器不显示源代码
WebPack:打包模式选择开发者模式后会造成源码泄漏(nodejs vue)

Untitled

Untitled

这类打包器会将整站的API和API参数打包在一起供Web集中调用,这也便于我们快速发现网站的功能和API清单,但往往这些打包器所生成的JS文件数量异常之多并且总JS代码量异常庞大(多达上万行),这给我们的手工测试带来了极大的不便,Packer Fuzzer软件应运而生。

本工具支持自动模糊提取对应目标站点的API以及API对应的参数内容,并支持对:未授权访问、敏感信息泄露、CORS、SQL注入、水平越权、弱口令、任意文件上传七大漏洞进行模糊高效的快速检测。在扫描结束之后,本工具还支持自动生成扫描报告,您可以选择便于分析的HTML版本以及较为正规的doc、pdf、txt版本。

#第三方库-JQuery-使用&安全

jQuery是一个快速、简洁的JavaScript框架,是一个丰富的JavaScript代码库。设计目的是为了写更少的代码,做更多的事情。它封装JavaScript常用功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

1、使用:

引用路径:https://www.jq22.com/jquery-info122

Untitled

Untitled

3.4.1版本就有被xss植入的风险而3.5.1版本没有

Untitled

Untitled

2、安全:

检测:http://research.insecurelabs.org/jquery/test/
测试:CVE-2020-11022/CVE-2020-11023
参考:https://blog.csdn.net/weixin_44309905/article/details/120902867

Untitled

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450163.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django学习记录01

1.项目结构 djangoProject02 ├── manage.py 【项目的管理&#xff0c;启动项目、创建app、数据管理】【不要动】【常常用】 └── jangoProject02 ├── __init__.py ├── settings.py 【项目配置】 【常常修改】 ├── urls.py …

【Java程序设计】【C00232】基于Springboot的抗疫物资管理系统(有论文)

基于Springboot的抗疫物资管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的抗疫物资管理系统 用户主要分为管理员和普通用户 管理员&#xff1a; 管理员可以对后台数据进行管理、拥有最高权限、具体权限有…

springboot整合Sa-Token实现登录认证和权限校验(万字长文)

目前在国内的后端开发中&#xff0c;常用的安全框架有spring security、shiro。现在&#xff0c;介绍一款由国人开发的安全框架Sa-Token。这个框架完全由国人开发&#xff0c;所提供的Api文档和一些设置都是比较符合国人的开发习惯的&#xff0c;本次就来介绍一下如何在spring …

项目中将sass更换成less(TypeError: this.getOptions is not a function已解决)

在更换之前&#xff0c;首先了解sass与less在用法上的区别有哪些&#xff08;这里简单提几个&#xff09;&#xff1a; 变量区别&#xff1a;Less中用&#xff0c;Sass用$sass支持条件语句&#xff0c;可以使用if{}else{}、for循环等&#xff0c;而less不支持在定义变量时候&a…

QT研究笔记(一)windows 开发环境安装部署

一、Qt 是什么&#xff1f; Qt 是一个跨平台的应用程序开发框架&#xff0c;最初由挪威的 Trolltech 公司开发&#xff0c;并于2008年被诺基亚收购。后来&#xff0c;Qt 框架由 Digia 公司接手&#xff0c;并在2012年成立了 The Qt Company。Qt 提供了一套丰富的工具和类库&am…

双非本科准备秋招(15.2)—— java线程常见方法

常见方法表格 方法名功能说明注意start()启动一个新线 程&#xff0c;在新的线程 运行 run 方法 中的代码start 方法只是让线程进入就绪&#xff0c;里面代码不一定立刻 运行&#xff08;CPU 的时间片还没分给它&#xff09;。每个线程对象的 start方法只能调用一次&#xff0…

C++ 动态规划 线性DP 最长上升子序列

给定一个长度为 N 的数列&#xff0c;求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 N 。 第二行包含 N 个整数&#xff0c;表示完整序列。 输出格式 输出一个整数&#xff0c;表示最大长度。 数据范围 1≤N≤1000 &#xff0c; −109≤数列中的数…

基于YOLOv8的船舶目标检测系统(Python源码+Pyqt6界面+数据集)

博主简介 AI小怪兽&#xff0c;YOLO骨灰级玩家&#xff0c;1&#xff09;YOLOv5、v7、v8优化创新&#xff0c;轻松涨点和模型轻量化&#xff1b;2&#xff09;目标检测、语义分割、OCR、分类等技术孵化&#xff0c;赋能智能制造&#xff0c;工业项目落地经验丰富&#xff1b; …

使用Python的turtle模块实现简单的烟花效果

import turtle import random import math# 设置窗口大小 width, height 800, 600 screen turtle.Screen() screen.title("Fireworks Explosion") screen.bgcolor("black") screen.setup(width, height)# 定义烟花粒子类 class Particle(turtle.Turtle):…

01 JDK的安装

JDK的安装 1 JDK的安装&#xff1a;参考&#xff1a; 1 JDK的安装&#xff1a; 说到Java&#xff0c;永远都有一个绕不开的话题&#xff0c;就是JDK(Java Development Kit)。JDK 是整个Java的核心&#xff0c;包括了Java运行环境&#xff0c;Java工具和Java基础的类库。安装JD…

2024/2/3

一&#xff0e;选择题 1、适宜采用inline定义函数情况是&#xff08;C&#xff09; A. 函数体含有循环语句 B. 函数体含有递归语句‘、考科一 ’ C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A (1);”语句后&#xff0c…

数字化转型:企业适应新常态的关键之举_光点科技

在全球商业环境不断演变和技术日新月异的背景下&#xff0c;数字化转型已经成为企业不可回避的课题。它不仅关乎企业的未来生存与发展&#xff0c;更是适应新常态、提升竞争力的关键之举。但是&#xff0c;数字化转型并非一夜之间可以完成的任务&#xff0c;它需要全面的策略规…