zoukankan      html  css  js  c++  java
  • 四十:JAVA安全-JWT安全及预编译CASE注入

    通过前期的WEB漏洞的学习,掌握了大部分的安全漏洞的原理及利用,但是在各种脚本语言开发环境的差异下,存在新的安全问题,脚本语言类型PHP,JAVA,Python等主流开发框架会有所差异

    SQL-injection

    防御SQL注入,其实就是session,参数绑定,存储过程这样的注入
    //利用session防御,session内容正常情况下是用户无法修改的select * from users where user = "'" + session getAttribute("userID") + "'";
    

    参数绑定方式,利用了SQL的预编译技术

    使用预编译的preparedstatement的参数化查询可以组织大部分的SQL注入
    使用PreparedStatement的参数化的查询可以阻止大部分的SQL注入。在使用参数化查询的情况下,数据库系统不会将参数的内容视为SQL指令的一部分来处理,而是在数据库完成SQL指令的编译后,            
        才套用参数运行,因此就算参数中含有破坏性的指令,也不会被数据库所运行。因为对于参数化查询来说,查询SQL语句的格式是已经规定好了的,需要查的数据也设置好了,缺的只是具体的那几个 
       数据而已
    
    case when带入SQL语句可以绕过
    

    什么是JWT (跨域身份解决方案)

    JSON web token(json 令牌)是一种跨域验证的方案。JWT不加密传输的数据,但是能够通过数字签名来验证数据未被篡改
    
    JWT分为头部(header),声明(claims),签名(signature),三个部分以英文句号隔开,JWT的内容进行了base64编码
    
    
    
    
    一般采用SHA-256的base64加密
    
    1、服务端根据用户登录状态,将用户信息加密到token中,返给客户端
    2、客户端收到服务端返回的token,存储在cookie中
    3、客户端和服务端每次通信都带上token,可以放在http请求头信息中,如:Authorization字段里面
    4、服务端解密token,验证内容,完成相应逻辑
    
    
       头部,声明,签名。可以修改头部和声明,加密修改为none,声明修改为true。
    
       JWT进行破解,对令牌数据进行破解
  • 相关阅读:
    常用的 写代码 的 指令
    boos
    超级搬运工
    那些年,我读过的书籍(读完一本就在此处更新),立贴。
    ExtJs combobox模糊匹配
    整理了一下eclipse 快捷键注释的一份文档
    中国省份按照拼音排序出现的问题以及临时解决方案
    JetBrains WebStorm 安装破解问题
    ExtJs Grid 删除,编辑,查看详细等超链接处理
    ExtJs Panel 滚动条设置
  • 原文地址:https://www.cnblogs.com/SnowSec/p/14374695.html
Copyright © 2011-2022 走看看