什么是SQL注入?

SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中
最普遍的漏洞之一。

例如:某学长通过攻击学校数据库修改自己成绩,一般用的就是SQL注入方法。

原因总结:

对sql语句和关键字未进行过滤

当前端传过来的数据进入到后端进行处理时,没做严格的判断,导致其传入的‘数据(含有sql关键字)’ 在拼接sql语句中
由于其特殊性,被当作sql语句的一部分被执行,导致数据库受损(修改,删除等)

防止方法:

  1. 过滤掉关键字:select、insert、update、delete、and等;

  2. 执行 sql语句时使用系统函数addslashes进行 sql语句转换

  3. 提高数据库命名技巧,对于一些重要字段根据程序特点命名,取不易猜到的(lcuuid as uuid)

  4. 对于常用的方法加以封装,避免直接暴露sql语句,例如 orm

  5. 开启安全模式,safe_mode=on

  6. 打开magic_quotes_gpc=off,默认是关闭的,它打开后自动把用户提交的sql语句进行转换(加上\转义),这对防止sql注入有很大作用;on

  7. Sql语句书写尽量不要省略双引号和单引号

  8. 关键日志错误信息不要暴漏到页面,转到系统中去

如何防止sql注入?相关推荐

  1. php mysql 防 sql注入_php 防sql注入方法

    php防sql注入的方法:1.使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符:2.打开magic_quotes_gpc来防止SQL注入:3.通过自定义 ...

  2. resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...

  3. mybaits的模糊查询_mybatis模糊查询防止SQL注入(很详细)

    SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如"or '1'='1'"这样的语句),有可能入侵参数检验不足的应用程序 ...

  4. SQL注入漏洞全接触--入门篇

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...

  5. Sql注入和Html注入

    举例说,有一间公司的网页服务器上有一个留言板的代码,用来让用户发表简短的口信,例如: hello word!!!! 不过,这个代码原来有漏洞.一个意图入侵者得悉这间公司采用了有问题的代码,于是试图通过 ...

  6. mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...

    本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...

  7. 【数据库】 兴唐第二十七节课只sql注入

    首先来一个用户登录程序 public static void login(String username, String password) {Connection conn = null;State ...

  8. 雷林鹏分享:MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  9. WEB攻击手段及防御第2篇-SQL注入

    概念 SQL注入即通过WEB表单域插入非法SQL命令,当服务器端构造SQL时采用拼接形式,非法SQL与正常SQL一并构造并在数据库中执行. 简单的SQL注入的例子: 例1:test123456 or ...

  10. WEB安全,SQL注入漏洞的加固代码汇总

    该修复任务专用于处理以下安全性问题: [1] SQL 盲注 [2] SQL 注入 [3] XPath 注入 [4] 发现数据库错误模式 [5] 跨站点脚本编制 [6] 使用 SQL 注入的认证旁路 [ ...

最新文章

  1. 报告:最大化人工智能(AI)机遇
  2. Caffe学习系列(13):数据可视化环境(python接口)配置
  3. Caffe 训练时loss等于87.3365且保持不变的原因及解决方法
  4. 小括号教学设计导入_【教资面试】语文政治历史地理教学设计答题技巧!
  5. android textview 背景图片,Android—TextView 背景颜色与背景图片设置
  6. 图片照片展示html5模板
  7. ubunut16.04 更新python3.6
  8. 新手必须要注意的编程范式
  9. 计算机图形学代码之三角形绘制
  10. 数据绑定之DataFormatString
  11. Echarts基本图表
  12. linux 蓝牙驱动 chi,linux下的蓝牙驱动程序详解
  13. Java实现12306登录和查票
  14. 计算机建立第2用户,2016年计算机二级VF备考练习题及参考答案(5)
  15. JAVA多线程:龟兔赛跑
  16. 个人号微信二次开发,微信ipad协议
  17. python输入直角三角形的两直角边,求周长、面积和锐角度数
  18. App设计的基本原则和规范
  19. stm32——自定义HID设备
  20. 塑料壳上下扣合的卡扣设计_一种组合玩具的塑料卡扣的制作方法

热门文章

  1. 【判断是不是树】HDU 1272 小希的迷宫
  2. [Shader] Shader Cookbook 使用表面着色器[2]
  3. Grails is a breath of fresh air for Java developers
  4. detached HEAD以及切换分支代码丢失
  5. git branch detached
  6. 安装k8s pod性能分析工具Kubectl Flame
  7. c语言conflicting types,gcc编译C程序出现”error conflicting types for function”编译错误的分析解决...
  8. 机器学习与人脸识别1:如何理解机器学习
  9. 五年增长50倍,云栖小镇是怎么炼成的?
  10. [RK3399][Android7.1]勿扰模式的默认设置修改