iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php sql注入
  • 941
分享到

php sql注入

sqlphpmysqlphpsql注入sql注入 2023-08-30 23:08:06 941人浏览 安东尼
摘要

文章目录 一、什么是sql注入二、sql注入处理1、使用内置函数2、使用pdo预处理语句 三、安全注意事项 一、什么是sql注入 在应用程序中,为了和用户交互,允许用户提交输入数

文章目录

一、什么是sql注入

在应用程序中,为了和用户交互,允许用户提交输入数据,假如应用程序并没有对用户输入数据进行处理,攻击者可以输入一些跟sql语句相关的字符串(一般带有特殊字符)从而让应用程序执行危险的 SQL 操作,导致泄漏机密数据(比如用户信息)或直接修改删除线上的数据。

在这里插入图片描述

二、sql注入处理

1、使用内置函数

函数一: Mysqli_real_escape_string

作用: 转义在 SQL 语句中使用的字符串中的特殊字符

语法:

mysqli_real_escape_string($connection, $escapestring);选项参数:connection必需。规定要使用的 MySQL 连接。escapestring必需。要转义的字符串。编码的字符是 NUL(ASCII 0)、\n、\r、\、'、" 和 Control-Z。

函数二: addcslashes() (主要用来防止like语句注入)

作用: 使用反斜线转义字符串中的字符

语法:

addcslashes($string, $characters)选项参数:string必需。规定要转义的字符串。characters必需。规定要转义的字符或字符范围。

例:

//获取用户名$username = $_GET['username']; //将特殊字符转义为普通字符$username = addcslashes(mysqli_real_escape_string($conn, $username), "%_");//执行sql语句操作mysqli_query($conn, "SELECT FROM messages WHERE username LIKE '{$username}%'");

2、使用pdo预处理语句

pdo 预处理语句会对占位符绑定的值进行处理,也可以有效防止sql注入攻击

函数: PDO::prepare

语法:

public PDO::prepare(string $query, array $options = []): PDOStatement|false选项参数:query:必须是对目标数据库服务器有效的 SQL 语句模板。options:数组包含一个或多个 key=>value 键值对,为返回的 PDOStatement 对象设置属性。 常见用法是:设置 PDO::ATTR_CURSOR 为 PDO::CURSOR_SCROLL,将得到可滚动的光标。 某些驱动有驱动级的选项,在 prepare 时就设置。

例:

$sql = 'SELECT name, colour, calories    FROM fruit    WHERE calories < :calories AND colour = :colour';    $sth = $dbh->prepare($sql, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);$sth->execute(['calories' => 150, 'colour' => 'red']);$red = $sth->fetchAll();$sth->execute([':calories' => 175, ':colour' => 'yellow']);$yellow = $sth->fetchAll();

三、安全注意事项

  1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。
  2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
  3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
  4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
  5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
  6. sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具 、MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

来源地址:https://blog.csdn.net/change_any_time/article/details/128698821

--结束END--

本文标题: php sql注入

本文链接: https://www.lsjlt.com/news/383829.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php sql注入
    文章目录 一、什么是sql注入二、sql注入处理1、使用内置函数2、使用pdo预处理语句 三、安全注意事项 一、什么是sql注入 在应用程序中,为了和用户交互,允许用户提交输入数...
    99+
    2023-08-30
    sql php mysql php sql 注入 sql 注入
  • PHP入门指南:SQL注入
    PHP入门指南:SQL注入随着互联网的快速发展,Web应用程序越来越普及,其安全性也成为了人们极为关注的问题。SQL注入是 Web应用程序中的一种常见攻击方式,它可以导致严重的安全问题,从而对 Web应用程序的正常运行造成影响。在学习和使用...
    99+
    2023-05-20
    PHP sql注入 入门指南
  • PHP中的SQL注入问题
    在现代互联网应用的开发中,使用PHP开发应用是非常流行的一个选择。但是,PHP中的SQL注入问题一直是开发者们需要关注和解决的一个重要问题。SQL注入的定义是指通过在应用程序中输入恶意的SQL代码来篡改、插入或删除数据库中的数据,从而导致应...
    99+
    2023-05-24
    sql注入 PHP安全 数据过滤
  • PHP代码审计-sql注入
    文章目录 前言sql注入字符型注入魔术引号编码注入base64编码url编码宽字节注入 过滤方法代码审计实战 前言 最近想学代码审计了,但是我本身的代码水平不高,学的比较基础,适...
    99+
    2023-09-17
    1024程序员节
  • PHP的SQL注入完整过程
    这篇文章主要介绍“PHP的SQL注入完整过程”,在日常操作中,相信很多人在PHP的SQL注入完整过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP的SQL注入完整过程”...
    99+
    2024-04-02
  • php防sql注入什么函数
    防sql注入可用的函数有:addslashes($string):用反斜线引用字符串中的特殊字符' " \$username=addslashes($username);mysql_escape_string($string):用反斜杠转义...
    99+
    2024-04-02
  • sql注入之堆叠注入
    一、堆叠注入的原理 mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔 开,而堆叠注入其实就是通过结束符来执行多条sql语句 比如我们在mysql的命令行...
    99+
    2023-09-09
    sql mysql php 信息安全 网络安全
  • php如何预防sql注入漏洞
    php预防sql注入漏洞的方法:利用magic_quotes_gpc指令或它的搭挡addslashes()函数进行过滤,例如:<php//php防注入和XSS攻击通用过滤$_GET    &nb...
    99+
    2024-04-02
  • php sql注入的方法有哪些
    SQL注入是一种常见的网络安全漏洞,攻击者利用此漏洞可以执行恶意SQL语句,从而获取敏感数据或者对数据库进行修改。以下是一些常见的P...
    99+
    2023-08-23
    php sql
  • PHP常见的SQL防注入方法
    利用Mysqli和PDO 产生原因主要就是一些数据没有经过严格的验证,然后直接拼接 SQL 去查询。导致产生漏洞,比如: $id = $_GET['id'];$sql = "SELECT na...
    99+
    2023-09-26
    php sql
  • Mybatis-plus sql注入及防止sql注入详解
    目录一、SQL注入是什么?二、mybatis是如何做到防止sql注入的1. #{} 和 ${} 两者的区别2.PreparedStatement和Statement的区别3.什么是预...
    99+
    2022-11-13
    mybatis-plus sql注入 mybatis-plus防止sql注入
  • SQL注入进阶-order by注入
    目录 01-Order By简介 02-Order By注入场景 03-Order By注入姿势 03.1-结合union select进行盲注 03.2-结合if()进行盲注 03.3-结合if() + sleep()进行盲注 ...
    99+
    2023-08-31
    sql php
  • 【PHP面试题11】PHP如何防止SQL注入
    文章目录 一、概览二、SQL注入的案例三、防止SQL注入攻击预处理语句绑定变量 四、预防SQL注入攻击的最佳实践总结 一、概览 本文已收录于PHP全栈系列专栏:PHP面试专区。 ...
    99+
    2023-09-14
    sql 数据库 SQL注入
  • 简单聊一聊SQL注入及防止SQL注入
    目录SQL注入附防止sql注入的一些建议总结SQL注入 SQL注入是通过操作输入来修改事先定义好的SQL语句,对用户输入的字符串进行过滤,转义,限制或处理不严谨,导致用户可以通过输入...
    99+
    2024-04-02
  • SQL注入基础
    引言 靓仔们是否经常听到sql注入呢,那么sql注入到底是什么? 引用微软官方的语言来说: SQL 注入是一种攻击方式,在这种攻击方式中,在字符串中插入恶意代码,然后将该字符串传递到 SQL Server 的实例以进行分析和执行。 构成...
    99+
    2023-09-18
    数据库 服务器 mysql
  • php请求数据如何防sql注入
    php请求数据防sql注入的方法:mysql_real_escape_string,转义sql语句中使用字符串中的特殊字符使用addslashes()函数将php.ini中的“magic_quotes_gpc = Off”这个设置打开,例如...
    99+
    2024-04-02
  • SQL注入教程之报错注入
    目录SQL报错注入概述报错注入的前提条件Xpath类型函数extractvalue()updatexml()其他函数floor()、rand()、count()、group...
    99+
    2024-04-02
  • php框架中如何防止sql注入
    php框架中防止sql注入的方法:在php.ini配置文件中打开php的安全模式,例如:safe_mode = on当safe_mode打开时,将safe_mode_gid关闭,例如:safe_mode_gid = off在安全模式下指定要...
    99+
    2024-04-02
  • 防止SQL注入
    SQL注入是指攻击者通过在输入的数据中注入恶意的SQL代码,以获取非法访问、窃取敏感信息等操作。以下是一些防止SQL注入的方法: 使用参数化查询:使用参数化查询可以防止SQL注入攻击,参数化查询是指在执行查询时,将参数与查询语句分离,使得...
    99+
    2023-09-10
    sql 数据库 java mysql
  • SQL注入详解
    本文首发于:行者AI 现在大多数系统都使用B/S架构,出于安全考虑需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往会出现...
    99+
    2023-09-05
    sql 数据库 php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作