大数据环境下用户数据隐私安全防护系统的设计与实现(论文+源码)_kaic
摘 要
现如今互联网已在世界范围内广泛的应用和发展,特别是移动互联网Web 技术快速发展,然而最近几年经常发生互联网用户信息泄露及财产损失问题,网络安全漏洞严重威胁Web应用程序安全及互联网用户的网络使用安全,因此现急需一种Web应用漏洞检测系统来保障Web应用的安全。本文设计并实现了基于爬虫的漏洞检测系统,该系统使用WAMP集成环境,MySQL数据库,利用PHP结合HTML语言的混合框架结构开发完成,为系统使用者提供一个界面友好对web应用漏洞的检测环境。设计开始首先调研了当前Web服务器所面临的常见漏洞威胁并进行分析,再到系统开发环境、总体框架设计、业务流程、功能设计等几个方面进行系统的总体设计,然后针对安全威胁开发隐私安全防护系统,此系统的模块分为漏洞检测模块、漏洞防御模块、生成报告模块、菜单栏功能,登录注册功能等,通过此系统,可以检测出黑客对网站进行的常见攻击,使个人用户能够对漏洞进行了解和有效地防御,从而提高数据隐私安全性。
关键词:web安全;漏洞检测;数据隐私;SQL注入
ABSTRACT
Nowadays, the internet has been widely applied and developed worldwide, especially with the rapid development of mobile internet web technology. However, in recent years, there have been frequent issues of internet user information leakage and property damage. Network security vulnerabilities seriously threaten the security of web applications and internet users' network usage. Therefore, there is an urgent need for a web application vulnerability detection system to ensure the security of web applications. This article designs and implements a vulnerability detection system based on a crawler. The system is developed using a WAMP integrated environment, MySQL database, and a hybrid framework structure of PHP and HTML language, providing a user-friendly web application vulnerability detection environment for system users. At the beginning of the design, we first investigated and analyzed the common vulnerabilities and threats faced by current web servers. Then, we carried out the overall design of the system from several aspects such as system development environment, overall framework design, business process, functional design, etc. Then, we developed a privacy and security protection system for security threats. The system's modules are divided into vulnerability detection module, vulnerability defense module, report generation module, menu bar function, login and registration function, etc, Through this system, common attacks by hackers on websites can be detected, enabling individual users to understand and effectively defend against vulnerabilities, thereby improving data privacy security.
Keywords: web security; Vulnerability detection; Data privacy; SQL injection
目 录
第1章 绪论
1.1 研究背景
1.2 国内外研究现状
1.3 课题研究内容和目的
第2章 系统分析
2.1 软件环境分析
2.2 系统功能分析
2.3 系统业务流程分析
第3章 系统设计
3.1 系统总体框架设计
3.2 漏洞检测模块设计
3.3 数据库设计
3.4 漏洞防御模块设计
3.5 生成报告模块设计
第4章 系统实现
4.1 登录注册功能实现
4.2 菜单栏功能实现
4.3 漏洞检测模块实现
4.4 漏洞防御模块实现
4.5 生成报告模块实现
第5章 系统测试
5.1 sql 注入漏洞检测
5.2 逻辑越权漏洞扫描
结论
参考文献
致谢
第1章 绪论
1.1 研究背景
当今移动互联网在全球范围内广泛应用,在我们的生活中或多或少地会使用web应用及工具,这些应用和工具给我们的生活带来了极大的便利。然而,在网站浏览信息也常常会存在许多安全问题及安全威胁,这给用户安全带来一定风险,并且给一些互联网应用开发企业带来了巨大的安全隐患及财产损失。本课题通过研究基于网络爬虫的Web应用程序漏洞及其检测方法,开始设计并实现web应用漏洞检测系统,使其能高效检测常见的web漏洞,并且能给出详细的检测报告,其预期效果能便于开发人员及检测运维人员能尽早修复漏洞,避免造成重要损失。
1.2 国内外研究现状
漏洞扫描器的研究与开发起源于国外,一些国外学者提出静态源代码分析方法,但是这种方法需要有web应用的源代码,这限制了扫描工具的使用,当前市面上使用主流的漏洞扫描工具,这些工具使用的技术如网络爬虫技术,但是没有良好的可扩展性,一些开源的扫描工具像appscan,awvs等,这些开源工具一方面需要收费,并且这些漏扫工具面向的都是一些企业公司且扫描结果不理想,受众人群小,所以需要一款受众人群更广的免费工具。
1.3 课题研究内容和目的
该系统利用一些前端技术及代码编程还有一些漏洞算法完成一个系统美观的漏洞扫描系统,主要用到的技术有html,MySQL数据库,python,及CMS框架。最后还有漏洞报告生成模块,并对报告下载功能进行设计搭建,提供报告下载功能。由于国内还缺少国产漏洞扫描系统。所以我们还需要学习并利用一些国外的技术,原创打造属于国人自己的漏洞扫描工具。
第2章 系统分析
2.1 软件环境分析
此安全防护系统使用Wamp集成环境,安装PHPstudy环境即可,该环境可以从官网上下载,系统使用php和html语言混合开发,在此环境基础上开发漏洞防护系统。
2.2 系统功能分析
该系统划分成了五个页面模块,分别主页面模块、菜单栏页面、漏洞检测模块、测试报告页面、登录页面。前端页面使用iframe框架完成,标签对框架进行了划分。其中菜单栏模块为系统所有功能模块的链接,用于用户漏洞检测选项的选择及操作页面。
主页面模块为整个系统的主控模块用于用户交互及交互完成之后的信息展示,在此系统可以进行常见漏洞检测如sql注入、命令执行、xss、CSRF、文件上传等漏洞,通过检测可以很快找出网站具有哪些漏洞,并根据所找出的漏洞生成检测报告,并在报告中介绍漏洞的防御手段。
2.3 系统业务流程分析
首先打开Chrome浏览器输入系统URL,登录系统,进入主页面,建立新的扫描项目,开始扫描,等待扫描结果完成,可以查看扫描结果,另外可以导出报告,最后退出。
图2.1系统业务流程图
第3章 系统设计
3.1 系统总体框架设计
系统功能模块如图3.1所示。
图 3.1 系统功能模块图
系统总体页面框架结构采用了IFRAME框架进行设计,设计框架如图3.2所示。
图 3.2总体页面框架
index.php 为主框架文件,负责控制整个平台的框架布局,通过此文件的<frameset>标签,系统整个页面分成了5个部分,所有文件都存放在根目录下,如图 3.3所示。
图3.3 前端页面文件
3.2 漏洞检测模块设计
漏洞检测模块分为最开始的建立扫描项目,之后根据个人需求选择扫描选项,如:扫描的速度快慢,何种扫描方式,扫描的各种配置等。另外在扫描过程中内部的算法,分为SQL注入漏洞,xss,CSRF,ssrf,无效的访问控制漏洞等一些常见的漏洞扫描。
3.3 数据库设计
系统在开发设计过程中创建了security数据库,其中admin表为登陆注册用表。数据库各表如图 3.4 所示。
图3.4 数据库配置设计
admin表为用户表,可用于用户登陆系统。表结构如下表3.1所示。
表3.1 admin表
字段名称类型约束条件字段说明
idINT主键,非空,自增用户id
usernamevarchar(20)非空用户名
passwordvarchar(20)非空用户密码
member表为SQL注入漏洞检测使用表,用于sql模块的字符型get型注入、数字型注入,post注入、布尔盲注、报错注入,时间盲注等,表结构如下表3.2所示。
表3.2 member表
字段名称类型约束条件字段说明
idINT主键,非空,自增用户序号
useridINT非空用户id
ipaddressvarchar(50)非空用户地址
useragentvarchar(255)非空用户浏览器信息
httpacceptvarchar(255)非空用户http头信息
remoteportvarchar(255)非空用户提交信息
user表为xss漏洞使用表,用于反射性注入的环境,表结构如下表3.3所示。
表3.3 user表
字段名称类型约束条件字段说明
idINT主键,非空,自增用户id
timetimestamp非空用户时间
ipaddressvarchar(50)非空用户地址
字段名称类型约束条件字段说明
cookievarchar(1000)非空用户cookie
referervarchar(1000)非空用户返回信息
useragentvarchar(1000)用户浏览器信息
httpinfo表为跨站请求伪造漏洞使用表,表结构如下表3.4所示。
表3.4 httpinfo表
字段名称类型约束条件字段说明
idINT主键,非空,自增用户id
usernamevarchar(20)非空用户名
pwvarchar(20)非空用户密码
sexvarchar(2)非空用户性别
phonenumvarchar(20)非空用户电话
addressvarchar(50)非空用户地址
emailvarchar(20)非空用户邮箱
double_sql表为逻辑越权漏洞使用表,表结构如下表3.5所示。
表3.5 double_sql表
字段名称类型约束条件字段说明
idINT主键,非空,自增用户id
usernamevarchar(20)非空用户名
passwordvarchar(20)非空用户密码
levelINT非空用户等级
fish表为文件上传漏洞检测使用表,fish表结构如下表3.6所示。
表3.6 fish表
字段名称类型约束条件字段说明
idINT主键,非空,自增用户id
timetimestamp非空用户时间
usernamevarchar(20)非空用户名
passwordvarchar(20)非空用户密码
referervarchar(1000)非空用户返回信息
3.4漏洞防御模块设计
该系统提供的漏洞防御模块管理,能够使用户优先安排和管理漏洞。在检测出的漏洞的基础上展示他们的类型和严重程度。用户更容易识别的最严重漏洞,以及需要立即引起的注意。用户可以选择一个漏洞,查看其详情。这可以得到更多的信息漏洞和如何可以防御这些漏洞。
该模块还可以标记的漏洞作为固定的或误报。可以生成的报告和重新测试,如果需要的话。此外,还可以导出问题跟踪。
3.5 生成报告模块设计
设计该模块产生的的报告类型,受影响的项目的报告显示的文件和地点。报告显示的严重程度的脆弱性检测到与其他详细信息关于漏洞如何被检测到。
综合报告:
报告中提供全面信息的开发报告,并生成一个更简洁的格式,添加一个图形部分的统计数据。 每个漏洞,每个HTTP提出请求的目标是伴随着HTTP响应接收。HTML格式允许创造,可让用户拓展,使用户更加友好。与此相反,PDF格式是一个静态的格式。
相关文章:

大数据环境下用户数据隐私安全防护系统的设计与实现(论文+源码)_kaic
摘 要 现如今互联网已在世界范围内广泛的应用和发展,特别是移动互联网Web 技术快速发展,然而最近几年经常发生互联网用户信息泄露及财产损失问题,网络安全漏洞严重威胁Web应用程序安全及互联网用户的网络使用安全,因此现急需一…...

基于springboot+vue+uniapp的“口腔助手”小程序
开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…...
算法刷题之链表
// 单链表 struct ListNode {int val; // 节点上存储的元素ListNode *next; // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数 };ListNode* head new ListNode(5); 重要方法:虚拟头节点 个人方法:指针转为数组…...
C# 设计模式之适配器模式
总目录 前言 在实际的开发过程中,由于需求的变化和扩展,我们的代码也需要做相应的扩展。想象这样一个场景,原项目中接口返回的数据是XML格式的数据,但现在来了一个新客户,它期望接口返回的数据类型为json格式的。想要…...

BFS实现迷宫最短路径
结合队列的知识利用 广度优先遍历,通过对能走的路径的记录以及对走过路径的标记,进行多条路搜查 一、理论基础 如下图的迷宫: 选取所走方向(针对某一个位置)下,右,上,左࿰…...

Linux IPC解析:匿名命名管道与共享内存
目录 一.IPC机制介绍二.匿名与命名管道1.匿名管道2.命名管道3.日志 三.共享内存三.System V 标准1.System V简介2.IPC在内核的数据结构设计3.信号量 一.IPC机制介绍 IPC(Inter-Process Communication,进程间通信)是计算机系统中不同进程之间交…...

Codeforces Round 964 (Div. 4) A~G
封面原图 画师ideolo A - AB Again? 题意 给你一个两位数,把他的个位和十位加起来 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; typedef double db; typedef pair<int,int> pii; typedef pair<ll,ll> pll;voi…...
单体应用提高性能和处理高并发-使用缓存
要在单体应用中实现高并发,并利用缓存技术来提高性能,需要深入了解缓存的应用场景、选择合适的缓存工具,以及在具体代码中实现缓存策略。以下是详细说明如何在单体应用中使用缓存来处理高并发的内容,包括常见的缓存框架和实际的代…...
ollama教程——使用LangChain调用Ollama接口实现ReAct
ollama入门系列教程简介与目录 相关文章: Ollama教程——入门:开启本地大型语言模型开发之旅Ollama教程——模型:如何将模型高效导入到Ollama框架Ollama教程——兼容OpenAI API:高效利用兼容OpenAI的API进行AI项目开发Ollama教程——使用LangChain:Ollama与LangChain的强强…...

【Bug分析】Keil报错:error: #18:expected a “)“问题解决
【Bug分析】Keil报错:error: #18:expected a “)”问题解决 前言bug查找bug解决方法小结 前言 keil编译时出现一个问题,缺少一个右括号。然后仔细查看代码,并没有括号缺失。 如下,代码括号正常。 bug查找 站内文章…...
MAC上设置快捷打开终端以及如何运用剪切快捷键
在Mac上设置一个快捷键,在当前文件夹中打开终端,你可以使用Automator创建一个服务,然后将其分配给一个快捷键。以下是步骤: 1. 创建Automator服务 打开 Automator(你可以在应用程序文件夹中找到它,或使用…...

linux docker安装 gitlab后忘记root密码如何找回
1. docker ps - a 查看当前gitlab 当前的id2. docker exec -it gitlab /bin/bash 进入docker git 容器中【gitlab 注意可以上图中的name,也可以是id都可以的】,如下图3.gitlab-rails console -e production 输入该指令,启动Ruby on Rails控制台&…...

C语言典型例题27
《C程序设计教程(第四版)——谭浩强》 习题2.4 用下面的scanf函数输入数据 使a3,b7,x8.5,y71.8,c1A,c2a。问在键盘上怎么输入 代码 //《C程序设计教程(第四版)——谭浩强》 //习题2.4 用下面的scanf函数输入数据,使…...

clion开发stm32f4系列(一)————移植rt-thread os系统
前言 本次使用的rt-thread的版本为5.0.2基于rt-thread sudio生成的源码进行拷贝和修改工程基于上次创建工程的项目进行修改。本次工程只是用了serial和pin组件,其他后面用到再进行添加 拷贝rt-thread源码库 通过CMakeLists来进行管理 顶级(rt-thread目录) cmake_minimum_req…...

计算机网络(网络层)
网络层概述 网络层是干什么的? 网络层的主要任务是实现不同异构网络互连,进而实现数据包在各网络之间的传输相比于数据链路层的以太网通信,网络层则是将一个个数据链路层连接的以太网通过路由器连接起来。从而实现不同数据链路层的互联。 这…...

Python3 第六十六课 -- CGI编程
目录 一. 什么是 CGI 二. 网页浏览 三. CGI 架构图 四. Web服务器支持及配置 五. 第一个CGI程序 5.1. HTTP 头部 5.2. CGI 环境变量 六. GET和POST方法 6.1. 使用GET方法传输数据 6.1.1. 简单的url实例:GET方法 6.1.2. 简单的表单实例:GET方法…...

【Unity23种设计模式】之状态模式
首先创建一个项目 打开项目后复制至3个场景 命名为 创建一个空物体 命名为GameLoop 创建一个脚本GameLoop.cs 编写代码如下 将代码挂载至空物体GameLoop 将三个场景拖拽至Scenes In Build 分析下状态模式的类图 我们创新类图中的代码 编写ISceneState.cs 编写三个状态子类继承构…...
二叉树刷题,bfs刷题
有些题目,你按照拍脑袋的方式去做,可能发现需要在递归代码中调用其他递归函数计算字数的信息。一般来说,出现这种情况时你可以考虑用后序遍历的思维方式来优化算法,利用后序遍历传递子树的信息,避免过高的时间复杂度。…...

为什么要用分布式锁
单应用中,如果要确保多线程修改同一个资源的安全性 加synchronized就可以了 但是性能不高 而mybatis-plus的乐观锁就可以很好的解决这类问题 但是这样的锁机制,只在单应用中有效 试想,在分布式下,有没有可能出现多个应用中的线程同时去修改同一个数据资源的并发问题 例如A …...

python游戏开发之五子棋游戏制作
五子棋是一种源自中国的传统棋类游戏,起源可以追溯到古代。它是一种两人对弈的游戏,使用棋盘和棋子进行。棋盘通常是一个 1515 的网格,棋子分为黑白两色,双方轮流在棋盘上落子。游戏的目标是通过在棋盘上落子,使自己的…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...