Java开发网络安全常见问题
1、敏感信息明文传输
用户敏感信息如手机号、银行卡号、验证码等涉及个人隐私的敏感信息不通过任何加密直接明文传输。
如下图中小红书APP 的手机短信验证码登录接口,此处没有对用户手机号和验证码等信息进行加密传输,可以很简单的截取并开展一些合法的工作。
可以对比下其他的APP,如美团APP 的手机短信验证码登录接口,就不是明文传输。
解决方案
前后端敏感参数的传递,可以通过加密手段如借助AES 秘钥前后端加解密传输。最简单的用户手机号加密传输如下。
2、弱口令漏洞
这种情况其实很常见,好多后台的管理系统,甚至我之前公司的管理系统现在使用123456这种密码都可以登录进去。
解决方案
- 很多登录的框架都支持在配置文件开启用户登录密码强度级别和设置默认密码。
- 使用至少12位的数字、字母及特殊字符组合作为密码。
- 数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密,或者多种加密方式叠加组合。
3、绕过密码登录直接进入后台
首先,后台登陆验证的逻辑一般的方式都是将用户在登录界面输入的账号密码拿到数据库中的相关用户表做校验,如果输入的账号密码等于数据库中某条记录,则验证通过并且程序会给用户一个sssion,然后进入后台,反之就是返回登陆界面。
出现这种绕过密码登录的情况就是很早之前的典型案例 'or'='or' 漏洞,校验用户登录的SQL如下。
select * from t_user where user_name = '’or‘='or'' And password = '123456789'
如果用户名在登录界面的 用户名 处输入要提交的信息为 'or'='or' ,就会变成如上SQL((假or真or假and(真/假))= 真)执行后得到对象的结果为真,接下来就可以通过重定向进入后台了。
View Code
解决方案
- 通过配置,过滤掉无效用户的登录请求。
- 很早之前才会出现这个漏洞,现在基本上的后台验证都不会使用这类方式,而是取得用户输入的账号和密码,在SQL中先将用户名与数据库中的记录做对比,若数据库中某条记录的用户名等于用户输入的用户名,则取出该条记录中的密码,然后再与用户输入的密码对比。
4、浏览器缓存漏洞
系统正常存在的合法用户在“注销”后,但未关闭浏览器,此时点击浏览器“后退”按钮,可从本地页面缓存中读取数据,绕过了服务端filter过滤。
解决方案
在很多项目的 Config 配置文件中都有发现的如下配置,即配置filter对存放敏感信息的页面限制缓存。
httpResponse.setHeader(“Cache-Control”,“no-cache”); httpResponse.setHeader(“Cache-Control”,“no-store”); httpResponse.setDateHeader(“Expires”, 0); httpResponse.setHeader(“Pragma”,“no-cache”);
5、SQL注入漏洞
在HTTP 请求中注入恶意的SQL 代码,最常见的手段就是在访问URL 后拼接SQL 代码,服务器使用参数构建数据库SQL 命令时,恶意SQL 被一起构造,并在数据库中执行。如下拼接SQL
String query = “SELECT * FROM t_users WHERE user_id = ’” + request.getParameter(“id”) + “’”;
如果参数id 中是 or 1=1 ,就会返回所有数据。
解决方案
- 不要拼接SQL字符串。
- 使用预编译的PrepareStatement,如。
PreparedStatement pstmt = con.prepareStatement(“SELECT * FROM t_users WHERE u_name = ?”); pstmt.setString(1, “tjt”);
- 服务器端校验 (防止攻击者绕过web端请求)。
- 过滤SQL 参数中的特殊字符,比如单引号、双引号等。
6、文件上传漏洞
在文件上传前端界面,用户上传了一个可执行的脚本文件,并通过此脚本文件获得执行服务端命令的能力。
解决方案
- 设置文件上传的目录为不可执行。
- 判断文件类型。在判断文件类型的时候,可以结合使用MIME Type,后缀检查等方式。以及限制上传文件的大小。
- 对上传的文件类型进行白名单校验,只允许上传可靠类型。
- 上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加攻击成本,同时向shell.php.rar.ara这种文件,因为重命名而无法成功实施攻击。
- 给文件服务器设置单独的域名。
7、WEB 容器漏洞
Tomcat 有一个管理后台,其用户名和密码在Tomcat安装目录下的conf omcat-users.xml文件中配置,很多用户经常采用的是一些弱口令。而Tomcat 又支持在后台部署war包,可以直接将webshell 部署到web目录下,如果tomcat 后台管理用户存在弱口令,这很容易被利用上传webshell。
解决方案
- 更改其默认路径,口令及密码。
- Tomcat还有一些其他的漏洞,最有效的防御就是修改配置文件,防止未授权访问、弱口令、PUT方式传文件、readonly等,然后最好更新最新版本的tomcat。
8、XSS 攻击
XSS(cross site scripting,即跨站脚本攻击),将一段Html 和JavaScript 代码注入到用户浏览的网页上。XSS 可以大概分为三类, DomXSS、反射型XSS 和 存储型XSS。
<input type="text" name="name" value="tjt">
在前端界面有很多用户输入字符的操作,如上表单,如果,用户输入的不是一个正常的字符串,而是
"/><script>alert(“tjt-hello-boy-isMe”)</script><!-
然后,JS页面变成下面的内容,在输入框 input 的后面带上了一段脚本代码。
<input type="text" name="name" value="tjt">
<script>alert(“tjt-hello-boy-isMe”)</script><!-"/>
从上可以看出,XSS攻击的威力取决于用户输入的JS 脚本。攻击者提交恶意的JS 代码,客户端没有做xss校验,都会存在客户端注入问题,就会出现这段恶意执行的JS 代码。
解决方案
- 前后端限制字符串输入的长度限制。
- 前后端限制对HTML 转义处理,将其中的"<",">"等特殊字符进行转义编码。
9、CSRF 攻击
XSRF Cross-site request forgery,即跨站请求伪造,指攻击者通过跨站请求,以合法的用户身份进行非法操作。攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF 能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息,容易造成个人隐私泄露以及财产安全。
早期就会有很多这种网站,挂了很多靓妹的图片或者让人有种想要点击的那些图片,一旦你点击了,其实是打开了一个链接比如发起银行转账请求,而你的浏览器又恰巧登录浏览过该银行并且缓存未失效,不出意外的话意外就发生了。随之后来的隐藏域手段、验证码、二次确认等机制这种攻击案例就少了。
解决方案
- 使用安全框架,如Apache shiro,Spring Security 等。
- 结合安全框架充分校验Token,在HTTP 请求中进行token 验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。
- 验证码二次确认。通常情况下,验证码能够很好的遏制CSRF攻击,但是很多情况下,出于用户体验考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。
- 网上还说可以通过 referer识别。在HTTP Header中有一个字段Referer,记录HTTP请求的来源地址。如果Referer是其他网站,就有可能是CSRF攻击,则拒绝该请求。但Referer 信息也极易伪造,窃取HTTP 窃取源地址,Header中添加Referer 字段。
10、DDOS 攻击
DDoS:Distributed Denial of Service,DDOS 攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。它的目的就是利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。
DDoS 攻击是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的,其具体有下面几种形式:
- 通过使网络过载来干扰甚至阻断正常的网络通讯;
- 通过向服务器提交大量请求,使服务器超负荷;
- 阻断某一用户访问服务器;
- 阻断某服务与特定系统或个人的通讯。
解决方案
1、监控访问数据、过滤恶意流量,定期检查服务器软件安全漏洞,对外关闭不必要的服务和端口,在服务器防火墙中,只开启使用的端口,比如网站web服务的80端口、数据库的3306端口、SSH服务的22端口等。
2、采用高性能的网络设备,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某种类的DDOS攻击是非常有效的。
3、HTTP请求拦截,如果恶意请求有特征,直接拦截就可以。HTTP请求的特征一般有两种:IP地址和User Agent字段。
4、尽量避免NAT 的使用,因为NAT需要对地址来回转换,会较大降低网络通信能力。
5、足足的网络带宽,带宽直接决定了能抗受攻击的能力,假若仅仅有10M的话,无论采取什么措施都很难对抗现在的DDOS 的 SYNFlood攻击,没钱搞 100M有钱的搞到1000M。
6、将网站做成静态页面或者伪静态,将网站做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现。
7、安装专业抗DDOS 防火墙。
8、备份网站,有一个备份网站,容错率就高很多,生产服务器万一下线了,可以立刻切换到备份网站。
相关文章:
Java开发网络安全常见问题
1、敏感信息明文传输 用户敏感信息如手机号、银行卡号、验证码等涉及个人隐私的敏感信息不通过任何加密直接明文传输。 如下图中小红书APP 的手机短信验证码登录接口,此处没有对用户手机号和验证码等信息进行加密传输,可以很简单的截取并开展一些合法的…...
C#基础之委托,事件
文章目录 1 委托1.1 简介1.2 操作使用1.2.1 声明委托(Delegate)1.2.2 实例化委托(Delegate)1.2.3 直接调用和invoke1.2.4 Invoke 和 BeginInvoke 1.3 委托的多播1.4 委托的匿名和lambda1.4.1 匿名方法1.4.2 lambda 表达式 1.5 内置…...
nginx配置静态资源的访问
比如静态资源图片位于/mnt/software/nginx/html/static/images目录下,那么nginx.conf中的配置则为: # 静态文件目录 location /static/images/ { root /mnt/software/nginx/html; try_files $uri $uri/ 404; #找不到时提示404 …...
JS的魔法三角:constructor、prototype与__proto__
在JavaScript中,constructor、prototype和__proto__是与对象创建和继承机制紧密相关的三个概念。理解它们之间的关系对于掌握JavaScript的面向对象编程至关重要。下面将详细介绍这个魔法三角: 1. constructor 定义:constructor是一个函数&am…...
CA系统(file.h---申请认证的处理)
#pragma once #ifndef FILEMANAGER_H #define FILEMANAGER_H #include <string> namespace F_ile {// 读取文件,返回文件内容bool readFilename(const std::string& filePath);bool readFilePubilcpath(const std::string& filePath);bool getNameFro…...
matlab显示sin二维图
1,新建脚本 2、保存脚本 3、脚本命令:clc 清除 脚本命令的信息 clrear all 清除全部 4工作区内容:变量啥的 x0:0.001:2*pi%% 开始 精度 中值 ysin(x) y1cos(x) figure%%产生一个屏幕 plot(x,y)%%打印坐标 title(ysin(x))%%标题 xlabel(…...
验证 kubelet 服务已经停止并且不再生成错误日志
要验证 kubelet 服务已经停止并且不再生成错误日志,可以按照以下步骤进行操作: 1. 检查 kubelet 服务状态 首先,确认 kubelet 服务已经停止。 Bash 深色版本 sudo systemctl status kubelet 你应该看到类似以下的输出,表示服…...
【Linux】进程控制-----进程替换
目录 一、为什么要进行进程替换: 二、进程替换的原理: 三、exec家族: 1、execl: 2、execlp: 3、execv: 4、execvp: 5、execle和execve 编辑 putenv: 一、为什么要进行进程…...
安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本
安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本。 原因是:当前操作系统版本为Windows Server 2016 Standard版本,其自带的Microsoft .NET Framework 版本为4.6太低,不满足要求。 根据报错的提示,点击链接…...
使用ECharts创建带百分比标注的环形图
在数据可视化领域,环形图是一种非常有效的图表类型,它能够清晰地展示各部分与整体的关系。今天,我们将通过ECharts来创建一个带百分比标注的环形图,并详细解释如何实现这一效果。 1. 数据准备 首先,我们定义了一些基础…...
学习threejs,设置envMap环境贴图创建反光效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.CubeTextureLoader 立…...
go语言里的mkdir mkdirall有什么区别?
在Go语言中,os.Mkdir 和 os.MkdirAll 都是用来创建目录的函数,但它们之间存在一些关键的区别。 ### os.Mkdir - **功能**:os.Mkdir 用于创建一个单一的目录。如果该目录已经存在,则会返回一个错误。 - **参数**: - na…...
使用Python OpenCV实现图像形状检测
目录 一、环境准备 二、读取和预处理图像 读取图像 灰度化 滤波去噪 三、边缘检测 四、查找轮廓 五、绘制轮廓 六、形状分类 七、显示结果 八、完整代码示例 九、总结 图像形状检测是计算机视觉领域中的一项关键技术,广泛应用于工业自动化、机器人视觉、医学图像处…...
继上一篇,设置弹框次数以及自适应图片弹框,部分机型(vivo)老手机不显示的问题
上一篇写的本来测试好多型号都无事, 今天下午公司的战斗机vivo横空冒出… 晕 弹框直接显示都出不来了,现在还有用这种老的机型的,但是没办法咯~ 前端遇到这种兼容性的问题就要勇于解决 主要解决了这几点: // 添加图片加载事件 <imgv-if"imageUrl":src"image…...
基于RISC-V 的代理内核实验(使用ub虚拟机安装基本环境)
1.安装支撑软件 第一步,安装依赖库 RISC-V交叉编译器的执行仍然需要一些本地支撑软件包,可使用以下命令安装: $ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bis…...
【MMKV】HarmonyOS中的优秀轻量化存储方式
MMKV 引言 在移动应用开发的世界里,数据存储和管理是至关重要的一环。随着技术的不断进步,开发者们对于高性能、轻量级、易用的数据存储解决方案的需求日益增长。MMKV(Memory Mapped Key-Value)正是这样一个开源的高性能key-val…...
docker安装hadoop环境
一、使用docker搭建基础镜像 1、拉取centos系统镜像 # 我这里使用centos7为例子 docker pull centos:7 2、创建一个dockerfiler文件,用来构建自定义一个有ssh功能的centos镜像 # 基础镜像 FROM centos:7 # 作者 #MAINTAINER hadoop ADD Centos-7.repo /etc/yum.re…...
开源多媒体处理工具ffmpeg是什么?如何安装?使用ffmpeg将M3U8格式转换为MP4
目录 一、FFmpeg是什么二、安装FFmpeg(windows)三、将M3U8格式转换为MP4格式 一、FFmpeg是什么 FFmpeg是一款非常强大的开源多媒体处理工具,它几乎可以处理所有类型的视频、音频、字幕以及相关的元数据。 FFmpeg的主要用途包括但不限于&…...
算法刷题Day5: BM52 数组中只出现一次的两个数字
描述: 一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 要求:空间复杂度 O(1),时间复杂度O(n)。 题目传送门 is here 思路: 方法一:最简单的思路就…...
55 基于单片机的方波频率可调
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 采用STC89C52单片机最小系统,设计DAC0832、放大器、与示波器显示方波,四位数码管显示频率,两个按键可调。 二、硬件资源 基于KEIL5编写C代码,PROT…...
23.useUnload
在 Web 应用开发中,处理页面卸载(unload)事件是一个重要但常常被忽视的方面。无论是提醒用户保存未保存的更改,还是执行一些清理操作,都需要在用户即将离开页面时进行处理。useUnload 钩子提供了一种简洁的方式来在 React 组件中处理 beforeunload 事件,使得在用户试图关…...
linux环境搭建
1、**连接外网** ssh在192.168.4.x上运行sudo ip link set ens160 down ssh切换到192.168.3.x(外网ip),运行sudo ip route add default via 192.168.2.1 dev ens192 onlink //连接外网 使用完外网后 ssh在192.168.3.x上运行sudo ip link set ens160 up ssh在1…...
《C++与生物医学的智能融合:医疗变革新引擎》
在当今科技飞速发展的时代,人工智能正以前所未有的深度和广度渗透到各个领域,为传统行业带来革新与突破。其中,将 C与生物学、医学等领域知识相结合,开发用于处理生物医学数据、辅助疾病诊断和治疗的人工智能应用,成为…...
Matlab 绘制雷达图像完全案例和官方教程(亲测)
首先上官方教程链接 polarplothttps://ww2.mathworks.cn/help/matlab/ref/polarplot.html 上实例 % 定义角度向量和径向向量 theta linspace(0, 2*pi, 5); r1 [1, 2, 1.5, 2.5, 1]; r2 [2, 1, 2.5, 1.5, 2];% 绘制两个雷达图 polarplot(theta, r1, r-, LineWidth, 2); hold …...
Lua的环境与热更
一、global_State,lua_State与G表 Lua支持多线程环境,使用 lua_State 结构来表示一个独立的 Lua 线程(或协程)。每个线程都需要一个独立的全局环境。而lua_State 中的l_G指针,指向一个global_State结构,这个就是我们常…...
HTML CSS JS基础考试题与答案
一、选择题(2分/题) 1.下面标签中,用来显示段落的标签是( d )。 A、<h1> B、<br /> C、<img /> D、<p> 2. 网页中的图片文件位于html文件的下一级文件夹img中,…...
若依解析(一)登录认证流程
JWTSpringSecurity 6.X 实现登录 JWT token只包含uuid ,token 解析uuid,然后某个常量加UUID 从Redis缓存查询用户信息 流程图如下 感谢若依,感谢开源,能有这么好系统供我学习。 设计数据库,部门表,用户表,…...
Redis设计与实现第17章 -- 集群 总结1(节点 槽指派)
集群通过分片sharding来进行数据共享,并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点node组成,刚开始每个节点都是相互独立的,必须将各个独立的节点连接起来,才能构成一个包含多个节点的集群。通过CLUSTER …...
汽车控制软件下载移动管家手机控车一键启动app
移动管家手机控制汽车系统是一款实现车辆远程智能控制的应用程序。通过下载并安装特定的APP,用户可以轻松实现以下功能:远程启动与熄火:无论身处何地,只要有网络,即可远程启动或熄火车辆,提前预冷或预…...
推荐几个可以免费下载网站模板的资源站
推荐几个可以免费下载网站模板的资源站,上面有免费的wordpress模板和帝国CMS模板可以下载。 模板帝 Mobandi.com 模板帝是一个提供丰富网站模板资源的平台,旨在帮助用户快速构建和美化自己的网站。无论是个人博客、企业官网还是电子商务平台ÿ…...
wordpress先使用/seo外包服务专家
DataTables是一款非常简单的前端表格展示插件,它支持排序,翻页,搜索以及在客户端和服务端分页等多种功能。官方介绍:DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the …...
什么网站可以接单做设计/seo扣费系统源码
相关文章: 小议 Java 类的初始化 文章目录编译期常量运行时常量相关助记符附:常量入栈指令References关于常量,在《Java 核心技术 卷 I》中是这么定义的:在 Java 中,利用关键字 final 指示常量。一旦被赋值之后&#…...
高校网站建设工作总结/营销案例网站
文章目录#事故现场#解决方法#事故现场 在Ubuntu系统中,安装docker,并以bridge网络模式启动容器,网络不通(无法访问外网),但使用host网络模式没有问题。 #解决方法 刚开始怀疑是DNS问题,后来发…...
深圳手机网站建设牛商网/百度推广获客方法
tomcat是我们在web开发中应用较为广泛的web应用服务器,之所以使用其作为web应用服务器是因为其即可以实现html等静态文件的访问(web服务器),又实现了servlet能处理动态web请求(web容器),这里与n…...
网络营销技能大赛优秀作品/合肥网络公司seo
CSS 选择器总结2021-06-13 21:35:37CSS 是用于网页设计可用的最强大的工具之一。使用它我们可以在几分钟内改变一个网站的界面,而不用改变页面的标签。好一段时间不用 CSS ,有一些基础知识的记忆有点模糊了,今天再做一次总结记录,…...
网站建设合同纠纷起诉书/点击seo软件
相信很大一部分网友是体验过华为EMUI的,最近和华为也是更新到了EMUI 10.1,但是其中的使用技巧您一定都清楚吗?除了我之前发的智慧分屏功能,我再给大家分享几个吧。最后一个你不一定知道哦!锁屏时可唤起小工具锁屏时上滑…...