当前位置: 首页 > news >正文

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 的手机短信验证码登录接口&#xff0c;此处没有对用户手机号和验证码等信息进行加密传输&#xff0c;可以很简单的截取并开展一些合法的…...

C#基础之委托,事件

文章目录 1 委托1.1 简介1.2 操作使用1.2.1 声明委托&#xff08;Delegate&#xff09;1.2.2 实例化委托&#xff08;Delegate&#xff09;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目录下&#xff0c;那么nginx.conf中的配置则为&#xff1a; # 静态文件目录 location /static/images/ { root /mnt/software/nginx/html; try_files $uri $uri/ 404; #找不到时提示404 …...

JS的魔法三角:constructor、prototype与__proto__

在JavaScript中&#xff0c;constructor、prototype和__proto__是与对象创建和继承机制紧密相关的三个概念。理解它们之间的关系对于掌握JavaScript的面向对象编程至关重要。下面将详细介绍这个魔法三角&#xff1a; 1. constructor 定义&#xff1a;constructor是一个函数&am…...

CA系统(file.h---申请认证的处理)

#pragma once #ifndef FILEMANAGER_H #define FILEMANAGER_H #include <string> namespace F_ile {// 读取文件&#xff0c;返回文件内容bool readFilename(const std::string& filePath);bool readFilePubilcpath(const std::string& filePath);bool getNameFro…...

matlab显示sin二维图

1&#xff0c;新建脚本 2、保存脚本 3、脚本命令&#xff1a;clc 清除 脚本命令的信息 clrear all 清除全部 4工作区内容&#xff1a;变量啥的 x0:0.001:2*pi%% 开始 精度 中值 ysin(x) y1cos(x) figure%%产生一个屏幕 plot(x,y)%%打印坐标 title(ysin(x))%%标题 xlabel(…...

验证 kubelet 服务已经停止并且不再生成错误日志

要验证 kubelet 服务已经停止并且不再生成错误日志&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 检查 kubelet 服务状态 首先&#xff0c;确认 kubelet 服务已经停止。 Bash 深色版本 sudo systemctl status kubelet 你应该看到类似以下的输出&#xff0c;表示服…...

【Linux】进程控制-----进程替换

目录 一、为什么要进行进程替换&#xff1a; 二、进程替换的原理&#xff1a; 三、exec家族&#xff1a; 1、execl&#xff1a; 2、execlp&#xff1a; 3、execv&#xff1a; 4、execvp&#xff1a; 5、execle和execve ​编辑 putenv&#xff1a; 一、为什么要进行进程…...

安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本

安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本。 原因是&#xff1a;当前操作系统版本为Windows Server 2016 Standard版本&#xff0c;其自带的Microsoft .NET Framework 版本为4.6太低&#xff0c;不满足要求。 根据报错的提示&#xff0c;点击链接…...

使用ECharts创建带百分比标注的环形图

在数据可视化领域&#xff0c;环形图是一种非常有效的图表类型&#xff0c;它能够清晰地展示各部分与整体的关系。今天&#xff0c;我们将通过ECharts来创建一个带百分比标注的环形图&#xff0c;并详细解释如何实现这一效果。 1. 数据准备 首先&#xff0c;我们定义了一些基础…...

学习threejs,设置envMap环境贴图创建反光效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.CubeTextureLoader 立…...

go语言里的mkdir mkdirall有什么区别?

在Go语言中&#xff0c;os.Mkdir 和 os.MkdirAll 都是用来创建目录的函数&#xff0c;但它们之间存在一些关键的区别。 ### os.Mkdir - **功能**&#xff1a;os.Mkdir 用于创建一个单一的目录。如果该目录已经存在&#xff0c;则会返回一个错误。 - **参数**&#xff1a; - na…...

使用Python OpenCV实现图像形状检测

目录 一、环境准备 二、读取和预处理图像 读取图像 灰度化 滤波去噪 三、边缘检测 四、查找轮廓 五、绘制轮廓 六、形状分类 七、显示结果 八、完整代码示例 九、总结 图像形状检测是计算机视觉领域中的一项关键技术,广泛应用于工业自动化、机器人视觉、医学图像处…...

继上一篇,设置弹框次数以及自适应图片弹框,部分机型(vivo)老手机不显示的问题

上一篇写的本来测试好多型号都无事, 今天下午公司的战斗机vivo横空冒出… 晕 弹框直接显示都出不来了,现在还有用这种老的机型的,但是没办法咯~ 前端遇到这种兼容性的问题就要勇于解决 主要解决了这几点: // 添加图片加载事件 <imgv-if"imageUrl":src"image…...

基于RISC-V 的代理内核实验(使用ub虚拟机安装基本环境)

1.安装支撑软件 第一步&#xff0c;安装依赖库 RISC-V交叉编译器的执行仍然需要一些本地支撑软件包&#xff0c;可使用以下命令安装&#xff1a; $ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bis…...

【MMKV】HarmonyOS中的优秀轻量化存储方式

MMKV 引言 在移动应用开发的世界里&#xff0c;数据存储和管理是至关重要的一环。随着技术的不断进步&#xff0c;开发者们对于高性能、轻量级、易用的数据存储解决方案的需求日益增长。MMKV&#xff08;Memory Mapped Key-Value&#xff09;正是这样一个开源的高性能key-val…...

docker安装hadoop环境

一、使用docker搭建基础镜像 1、拉取centos系统镜像 # 我这里使用centos7为例子 docker pull centos:7 2、创建一个dockerfiler文件&#xff0c;用来构建自定义一个有ssh功能的centos镜像 # 基础镜像 FROM centos:7 # 作者 #MAINTAINER hadoop ADD Centos-7.repo /etc/yum.re…...

开源多媒体处理工具ffmpeg是什么?如何安装?使用ffmpeg将M3U8格式转换为MP4

目录 一、FFmpeg是什么二、安装FFmpeg&#xff08;windows&#xff09;三、将M3U8格式转换为MP4格式 一、FFmpeg是什么 FFmpeg是一款非常强大的开源多媒体处理工具&#xff0c;它几乎可以处理所有类型的视频、音频、字幕以及相关的元数据。 FFmpeg的主要用途包括但不限于&…...

算法刷题Day5: BM52 数组中只出现一次的两个数字

描述&#xff1a; 一个整型数组里除了两个数字只出现一次&#xff0c;其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 要求&#xff1a;空间复杂度 O(1)&#xff0c;时间复杂度O(n)。 题目传送门 is here 思路&#xff1a; 方法一&#xff1a;最简单的思路就…...

55 基于单片机的方波频率可调

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 采用STC89C52单片机最小系统&#xff0c;设计DAC0832、放大器、与示波器显示方波&#xff0c;四位数码管显示频率&#xff0c;两个按键可调。 二、硬件资源 基于KEIL5编写C代码&#xff0c;PROT…...

基于OpenClaw框架的AI虚拟宠物技能:ClawPet设计与实现

1. 项目概述&#xff1a;在聊天机器人里养一只AI驱动的电子宠物 如果你和我一样&#xff0c;对90年代的电子宠物拓麻歌子&#xff08;Tamagotchi&#xff09;还有着深刻的童年记忆&#xff0c;同时又对现在各种AI聊天机器人&#xff08;Chatbot&#xff09;的智能交互能力着迷…...

深度解析智能歌词同步工具:macOS用户的革命性解决方案

深度解析智能歌词同步工具&#xff1a;macOS用户的革命性解决方案 【免费下载链接】LyricsX &#x1f3b6; Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX LyricsX是一款专为macOS设计的智能歌词同步工具&#xff0c;它彻底改变…...

FDS火灾模拟实战指南:从物理原理到工程决策

FDS火灾模拟实战指南&#xff1a;从物理原理到工程决策 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 当面对复杂建筑空间的火灾安全设计时&#xff0c;你是否曾困惑于如何选择合适的模拟工具&#xff1f;如何验证消防…...

收藏 | AI智能体红利期:小白也能抓住的500万人才缺口机遇!

本文揭示了AI智能体岗位的巨大市场需求&#xff0c;官方数据显示人才缺口达500万&#xff0c;供求比例1:10。大厂如腾讯、百度、阿里等纷纷加码招聘&#xff0c;应届生平均月薪高达17038元。普通人无需高深技术&#xff0c;通过外包服务、定制智能体、技能插件销售、内容科普等…...

Taotoken控制台的审计日志功能如何助力团队API使用安全复盘

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken控制台的审计日志功能如何助力团队API使用安全复盘 1. 审计日志&#xff1a;团队API使用的全景记录 在团队协作使用大模型…...

告别手机热点!实测特斯拉Model 3用USB无线网卡搭建‘永久’车载WiFi,看视频、OTA升级全搞定

特斯拉Model 3车载WiFi终极方案&#xff1a;告别流量焦虑与手机依赖 每次开车带家人出行时&#xff0c;后排的孩子总抱怨"视频又卡住了"&#xff0c;而手机热点不仅耗电还经常断连——这可能是许多特斯拉车主的共同困扰。更尴尬的是&#xff0c;当车辆停在信号死角时…...

用STM32F103和DHT11做个智能温湿度报警器,附ESP8266远程监控代码

STM32F103与DHT11打造智能环境监测系统&#xff1a;从本地报警到云端监控全解析 在智能家居和工业物联网快速发展的今天&#xff0c;环境监测系统已成为许多创客和开发者入门的首选项目。本文将带你用STM32F103微控制器和DHT11温湿度传感器&#xff0c;构建一个功能完善的智能…...

基于Matrix的AI助手baibot:多模型集成与隐私优先部署指南

1. 项目概述&#xff1a;一个为Matrix而生的全能AI助手如果你和我一样&#xff0c;既是Matrix去中心化通信的忠实用户&#xff0c;又对当前各种AI大模型的能力感到兴奋&#xff0c;那么你很可能一直在寻找一个能将两者无缝结合的工具。市面上确实有一些方案&#xff0c;比如基于…...

《AUTOSAR软件组件(SWC)实战:基于ETAS工具链的接口与数据映射》

1. AUTOSAR软件组件(SWC)基础概念 在汽车电子开发领域&#xff0c;AUTOSAR&#xff08;汽车开放系统架构&#xff09;已经成为行业标准。软件组件(SWC)作为AUTOSAR架构中的核心元素&#xff0c;承担着实现具体功能的重任。简单来说&#xff0c;SWC就像乐高积木&#xff0c;每个…...

如何优雅地从九大网盘获取真实下载地址:一个JavaScript工具的深度解析

如何优雅地从九大网盘获取真实下载地址&#xff1a;一个JavaScript工具的深度解析 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国…...