Java面试题解析之判断以及防止SQL注入

 更新时间:2018年02月01日 11:06:25   作者:帅气的小雅君  
这篇文章主要介绍了Java面试题解析之判断以及防止SQL注入,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

本文研究的主要是Java面试题中的一个比较常见的题目,判断及防止SQL注入的问题,具体介绍如下。

SQL注入是目前黑客最常用的攻击手段,它的原理是利用数据库对特殊标识符的解析强行从页面向后台传入。改变SQL语句结构,达到扩展权限、创建高等级用户、强行修改用户资料等等操作。

那怎么判断是否被SQL注入了呢?

通过SQL注入的原理我们知道,判断SQL注入可以通过页面传入的数据,后台不应该相信从后台传入的任何数据特别是特殊整型参数和特殊字符参数!

防止SQL注入其实也很简单

1.检查变量数据类型和格式

只要是固定格式的变量,在SQL语句执行前,应该严格按照固定格式检查,确保变量是我们预想的格式!

2.过滤特殊符号

对于无法确定固定格式的变量,一定要进行特殊符号过来或转移处理,一面之星SQL时有歧义。

当我们上传图片的时候

enctype=\”multipart/form-data\”
enctype=”multipart/form-data”

没有“/“,表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,进行下面的操作.

3.绑定变量,使用预编译语句

实际上,绑定变量使用预编译语句是预防SQL注入的最佳方法,使用预编译的SQL语句语义不会发生改变。在SQL语句中,变量用问号?表示,黑客即使本事再大,也无法改变SQL语句的格式,从根本上杜绝了SQL注入攻击的发生。

4.数据库信息加密安全

有时候数据库信息泄露了,我们应该对数据库的密码等信息进行加密(MD5等),这样信息泄露,损失也可以在控制在一定范围内。

使用JSP的时候要注意

1.不要随意开一生产环境汇总Webserver的错误显示。

2.永远不要相信来自用户端的变量输入,有固定格式的变量一定要严格检查对应的格式,没有固定格式的变量需要对引号等特殊字符进行必要的过滤转义。

3.使用预编译绑定变量的SQL语句

4.做好数据库账号权限管理

5.严格加密处理用户机密信息

一个好的程序一定要注意安全性,否则只适合练手。

总结

以上就是本文关于Java面试题解析之判断以及防止SQL注入的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • Java中的super关键字_动力节点Java学院整理

    Java中的super关键字_动力节点Java学院整理

    这篇文章主要介绍了Java中的super关键字的相关知识,需要的朋友参考下
    2017-04-04
  • idea创建springboot项目(版本只能选择17和21)的解决方法

    idea创建springboot项目(版本只能选择17和21)的解决方法

    idea2023创建spring boot项目时,java版本无法选择11,本文主要介绍了idea创建springboot项目(版本只能选择17和21),下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-01-01
  • Java ==,equals()与hashcode()的使用

    Java ==,equals()与hashcode()的使用

    本文主要介绍了Java ==,equals()与hashcode()的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 详细总结各种排序算法(Java实现)

    详细总结各种排序算法(Java实现)

    下面小编就为大家带来一篇详细总结各种排序算法(Java实现)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Mybatis-Plus时间范围查询方式详解

    Mybatis-Plus时间范围查询方式详解

    这篇文章主要介绍了Mybatis-Plus时间范围查询方式详解,通过两种方式结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • spring cloud中启动Eureka Server的方法

    spring cloud中启动Eureka Server的方法

    本篇文章主要介绍了spring cloud中启动Eureka Server的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java中实现List分隔成子List详解

    Java中实现List分隔成子List详解

    大家好,本篇文章主要讲的是Java中实现List分隔成子List详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 浅谈Spring如何解决循环依赖的问题

    浅谈Spring如何解决循环依赖的问题

    这篇文章主要介绍了浅谈Spring如何解决循环依赖的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • spring+mybatis实现图书管理系统

    spring+mybatis实现图书管理系统

    这篇文章主要为大家详细介绍了spring+mybatis实现图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Java多线程的调度_动力节点Java学院整理

    Java多线程的调度_动力节点Java学院整理

    有多个线程,如何控制它们执行的先后次序呢?下文给大家分享四种方法及java多线程调度的实例代码,需要的朋友参考下吧
    2017-05-05

最新评论