首页 > 编程语言 >java安全

java安全

时间:2023-05-05 20:13:37浏览次数:62  
标签:java 代码 JWT 安全 session statement sql

java——sql注入:
防御sql注入,其实就是session,参数绑定,存储过程这样的注入。
//利用session防御, session内容正常情况下是用户无法修改的select *
from users where user =“'”+ session. getAttribute ("UserID")
+"'";
//参数绑定方式, 利用了sq1的预编译技术
String query = "SELECT * FROM users WHERE last_ name = "?";
Preparedstatement statement =connection. prepareStatement (query) ;
statement.setString(1,accountName) ;
ResultSet results = statement. executeQuery() ;
上面说的方式也不是能够绝对的进行sql注入防御,只是减轻。
如参数绑定方式可以使用下面方式绕过。
通过使用case when语句可以将order by后的orderExpression表达式中添加select语句。(类似于堆叠注入)

什么是Jwt?
JSON web Token (JSON web令牌)是种跨域验证身份的方案。JWT不加密传输的数据,但能够通过数字签名来验证数据未被篡改

JWT组成:头部(header),声明(claims),签名(signature)

JWT修改伪造攻击:
通过抓包获得token,再通过在线网站进行编码(jwt在线),通过更改相关信息进行绕过,如果不知道密钥,那么我们需要将头部内容改为空(none),签名也改为空

authorization也可以输入JWT值

爆破密钥:
通过脚本以及字典来爆破密钥

------

路径遍历
上传文件时,如果上传的文件名可自己更改,可加上../来上传到上一级目录。如果只有一次过滤../,可以使用双写绕过
能和目录解析一起使用
代码情况:需注意模块引用 路由地址 静态文件 简易代码理解等


#不安全登录Insecure Login- 基于前端认证
#熟悉代码结构及硕源代码文件
equals函数类似于== 功能是进行比较字符串

前端验证可以在前端代码中看到对应js文件,获取到账号密码或者通过抓包时触发js文件来获取

#访问控制对象-逻辑越权
#代码分析过关逻辑
枚举用户参数对应数据库的其他数据信息
role, userid
通过参数值构造URL获取用户更多的信息

 

标签:java,代码,JWT,安全,session,statement,sql
From: https://www.cnblogs.com/juejuezi/p/17375235.html

相关文章

  • Java的反射用途及其获取反射的三种方法
    (1)反射的用途有多种:①框架设计:在框架设计中,我们通常需要使用反射技术来解耦,使框架可扩展和灵活。②单元测试:在单元测试中,我们可以使用反射技术来访问私有或受保护的类成员,使测试更加全面。③动态代理:使用反射技术可以创建动态代理对象,从而可以在运行时期代理任意的......
  • Java--抽象
    Java--抽象抽象的概念如果父类当中的方法不确定如何进行{}方法体的实现,那么这就应该是一个抽象方法抽象方法和抽象类的格式抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束.抽象类:抽象方法所在的类,必须是抽象类才行,在class之前写上abstract即可.代码示......
  • java基于springboot+vue的垃圾分类管理系统,附源码+文档+PPT+数据库
    1、项目介绍垃圾分类网站的主要使用者分为管理员和用户、垃圾分类管理员,实现功能包括管理员:首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃圾类型管理、垃圾图谱管理、系统管理,垃圾分类管理员;首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃......
  • 22基于java的电影院售票管理系统
    项目背景随着互联网和电子商务的快速发展,开发一个电影院订票系统来帮助电影院对电影信息,售票信息进行统一化的信息管理;遇到的问题在设计的过程中,需要解决以下的几个问题:电影院会有多个播放厅,从而在同一时间播放不同的电影来满足客户需求每个厅的大小可能不同,即容纳的人数不......
  • java 手动校验dto
    1在Java中进行手动校验DTO的方法有很多种,这里提供一种常用的校验方法,使用HibernateValidator实现:231.添加依赖45首先需要在Maven或Gradle中添加HibernateValidator的依赖:67Maven:89```xml10<dependency>11<groupId>......
  • java获取jdk、系统、服务器等信息
    1、获取jdk信息System.out.println(System.getProperty("java.version"));System.out.println(System.getProperty("java.vendor"));System.out.println(System.getProperty("java.vendor.url"));System.......
  • 关于java反射机制基础资料
    Java的反射机制允许在程序运行期间,借助反射API获取类的内部信息,并能直接操作对象的内部属性及方法。Java反射机制提供的功能:在运行时,使用反射分析类的能力,获取有关类的一切信息(类所在的包、类实现的接口、标注的注解、类的数据域、类的构造器、类的方法等)在运行时,使用反......
  • 安全开发生命周期
    软件安全开发周期第0阶段:教育和意识微软安全教育简史基本的安全培训:疏于修复安全bug的常用借口参考文献中列出了在“WritingSecureCode,SecondEdition一书(HowardandLeBlanc2003)所提及的"我们听说过的最滑稽可笑的借口”。当然这更像是一个诙谐的矛与盾的故事集,但诙......
  • javaNIO创建tcp服务器时的重要点
    在使用NIO创建非阻塞tcp服务器时,几个容易出现问题的点,如下代码注释所示:packagenet.yury.nio;importjava.io.IOException;importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;importjava.nio.CharBuffer;importjava.nio.channels.*;importjava.nio.charse......
  • 软件安全·从源头开始
    一、引言:软件安全的重要性和相关性。软件是我们在现实世界中做任何事情的关键,同时,软件也分布在最关键的系统中。基于此,软件的安全设计是至关重要的。大多数信息技术(InformationTechnology,IT)相关的安全解决方案已经能够有效地降低不安全软件带来的风险。为了证明一个软件......