mysqli与pdo防sql注入源码

1.mysqli防注入

<?php//定义配置文件$config = [//地址"host" => "127.0.0.1",//数据库名称"dbname" => "xxxx",//用户名"user" => "xxxx",//密码"pass" => "xxx"];//连接数据库$link = mysqli_connect($config["host"],$config["user"],$config["pass"],$config["dbname"]);//获取用户id    使用intval防注入  $user_id = intval($_GET["id"]);$user_id = $_GET["id"];$user_name = $_GET["name"];//写sql语句$sql = "select * from p_users where user_id=? and user_name=?";echo "<br>".var_dump($sql);//预处理$stmt = mysqli_prepare($link,$sql);//绑定函数  这里的ss为 后面第一个参数为字符串 第二个参数也为字符串mysqli_stmt_bind_param($stmt,"ss",$user_id,$user_name);//执行mysqli_stmt_execute($stmt);//获取结果$res = mysqli_stmt_get_result($stmt);//结果转换为二维数组$res = mysqli_fetch_all($res,1);echo "<pre>";print_r($res); echo "<pre>";

2、PDO防注入

<?php//配置文件$config = [//地址"host" => "127.0.0.1",//数据库名称"dbname" => "xxx",//用户名"user" => "xxx",//密码"pass" => "xxx"];//连接数据库$dbh = new PDO("mysql:host={$config['host']};dbname={$config['dbname']}",$config['user'],$config['pass']);//获取用户id    使用intval防注入  $user_id = intval($_GET["id"]);$user_id = $_GET["id"];$user_name = $_GET["name"];//写sql语句$sql = "select * from p_users where user_id=:id and user_name=:name";echo "<br>".var_dump($sql);//预处理$stmt = $dbh->prepare($sql);//绑定函数$stmt->bindParam(":id",$user_id);$stmt->bindParam(":name",$user_name);//执行$stmt->execute();//结果转换为二维数组$res = $stmt->fetchAll(PDO::FETCH_ASSOC);echo "<pre>";print_r($res); echo "<pre>";

常用的注入 or 1=1–

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm上传自己的项目

npm安装就不介绍了&#xff0c;自行度娘。本文介绍npm上传 先初始化&#xff1a;npm init 根据提示填完系统介绍信息&#xff08;package.json&#xff09;&#xff1b; 再登录npmjs&#xff1a; npm login 效果如图&#xff1a; 输入注册的用户名、密码、邮箱&#xff0c;…

PyQt5 打包问题解决 Unable to find “D:\anaconda3\lib\site-packages\PyQt5\Qt\translations\qtwebengine_locale

PyQt5 打包问题解决 Unable to find "D:\anaconda3\lib\site-packages\PyQt5\Qt\translations\qtwebengine_locale 今天用pyinstaller打包Pyqt5程序报了以下错误&#xff0c;通过在网上查询得到了解决方案 Unable to find "D:\anaconda3\lib\site-packages\PyQt5\Qt…

融于心而表于行 之 程序的执行问题

2.4 程序的执行问题Linux的多用户说完了&#xff0c;还需要进行下一个话题&#xff0c;那就是多任务的问题。所谓多任务&#xff0c;就是同一时刻能够执行多个程序。这个问题其实对于大多数Windows用户它都不是个问题&#xff0c;因为我们经常会一边浏览网页&#xff0c;一边用…

使用ffmpeg 将mp4文件转化未hls文件

使用laravel-admin后台先写一个视频上传 protected function form(){$form new Form(new Video());$form->text(video_title, __(Video title));// uniqueName(随机生成一个文件名) move(放入的文件夹)$form->file(video_url, __(Video url))->uniqueName()->mov…

WebStorm文件类型关联设置

无意中创造了一个没有扩展名的文件&#xff0c;我选择了错误的文件类型关联。是js类型的&#xff0c;我却选成了文本&#xff0c;Ws每次编辑类型就成了txt文本&#xff0c;这个问题让我很苦恼&#xff0c;以下是我的解决方案。 错选的弹出框如下&#xff1a; 解决方案如下&…

题目1369:字符串的排列

题目1369&#xff1a;字符串的排列 时间限制&#xff1a;1 秒 内存限制&#xff1a;32 兆 题目描述&#xff1a;输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入&…

WebStorm按Tab建快速生成代码模块

WS中&#xff0c;比如调试每次都要写的console.log(xxx);每次都要敲一遍&#xff0c;还有if模块&#xff0c;for循环模块&#xff0c;难道没有快捷键&#xff0c;可以生成代码模块吗&#xff0c;答案是“有”。 操作步骤如下&#xff08;汉化版WS&#xff09;&#xff1a; 1、…

python根据开头和结尾字符串获取中间字符串的方法

python根据开头和结尾字符串获取中间字符串的方法 本文实例讲述了python根据开头和结尾字符串获取中间字符串的方法。分享给大家供大家参考。具体分析如下&#xff1a; 这里给定一个字符串&#xff0c;指定开头和结尾的字符串&#xff0c;返回中间包夹的字符串&#xff0c;比…

iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)

1、新建文件 vim ~/.ssh/config 在打开的文件中输入以下内容 Host * ControlMaster auto ControlPath ~/.ssh/master-%r%h:%p ControlPersist yes ServerAliveInterval 60 #保持持久链接 每60s 发送一个请求检测2、 新建文件 并赋予可执行权限&#xff…

STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。 文章目录 前言一、光敏电阻介绍二、光敏电阻原理图解析三、ADC采样介绍1. 工作原理&#xff1a;2. ADC精度&#xff1a; 四、STM32 cubeMX配置ADC采样五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c;…

SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右

sql2012我重启了下sql服务&#xff0c;然后自增列Id居然一下子跳了1000&#xff0c;怎么回事啊&#xff1f;如果第一条数据是1&#xff0c;我重启服务&#xff0c;再添加就是1001&#xff0c;如果继续添加不重启服务的话就是1002&#xff0c;如果再次重启的话就是2001.重启下就…

Sphinx+MySQL5.1x+SphinxSE+mmseg

一.不停止mysql的情况下安装SphinxSE1.确定mysql版本,下载对应源码包此处下载5.1.69的mysql源码包#wget ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.1/mysql-5.1.69.tar.gz 解压2.下载sphinx:#wget http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz 解压3.拷贝m…

Python3实现从txt文件中读取指定行的方法

Python3实现从txt文件中读取指定行的方法 本文实例讲述了Python3实现从文件中读取指定行的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;def getline(the_file_path, line_number):if line_number < 1:return for cur_line_number, line in enumerate(open(the…

tls握手浅析

首先上图&#xff1a; tcp三次握手完毕 tls&#xff1a; 1、client hello client random 支持的tls 支持的算法 2、server hello server random 选择的tls协议 选择的算法 证书 公钥 3、client 公&#x1f511;加密后的。 premaster secret server 私钥解密得到 premas…

第二题:坦克游戏1.0(方法:动态规划)

stO 在此给某位靠打01背包处理射程并AC的大神跪了 Orz 问题描述&#xff1a; henry公司最近推出了一款新的坦克游戏。在游戏中&#xff0c;你将操纵一辆坦克&#xff0c;在一个NM的区域中完成一项任务。在此的区域中&#xff0c; 将会有许多可攻击的目标&…

ip、子网掩码、网络地址、广播地址、主机数公式

了解ip地址组成 IP地址&#xff1a;4段十进制&#xff0c;共32位二进制&#xff0c;如&#xff1a;192.168.1.1 二进制就是&#xff1a;11000000&#xff5c;10101000&#xff5c;00000001&#xff5c;00000001 子网掩码可以看出有多少位是网络号&#xff0c;有多少位是主机号…

linux 使用systemctl 设置java进程开机启动,管理springboot开机进程

该过程默认已经安装jdk。java程序启动方式有多重&#xff0c;列出如下几种。 1、java -jar demo.jar 使用该命令程序在控制台输出启动&#xff0c;当按下CtrlC和关闭终端时&#xff0c;程序会终止。输出日志&#xff0c;在后面加上 > 文件名&#xff0c;如&#xff1a;java…

golang开发环境配置及Beego框架安装

配置环境&#xff1a;Windows7推荐IDE&#xff1a;LiteIDEGO下载地址&#xff1a;http://www.golangtc.com/downloadBeego开发文档地址&#xff1a;http://beego.me/docs/intro/ 安装步骤&#xff1a; 一、GO环境安装 二、配置系统变量 三、Beego安装 一、GO环境安装 根据上…

svn迁移到git

步骤命令如下&#xff1a; > git svn clone https://svn-url/ProjectName --no-metadata --authors-fileuser.txt --trunk/ --tagstags --branchesbranches --ignore-refsrefs/remotes/ProjectName-.* > cd ProjectName> git remote rm origin> git remote add or…

Apache基础安装(一)

一、下载安装软件包安装[rooteric6 home]# mkdir -p /home/tools[rooteric6 tools]# wget http:#mirror.esocc.com/apache/httpd/httpd-2.2.25.tar.gz[rooteric6 tools]# tar -zxvf httpd-2.2.25.tar.gz[rooteric6 tools]# cd httpd-2.2.25[rooteric6 httpd-2.2.25]# ./configu…