开发者社区> 余二五> 正文

PHP程序中的sql语句防止POST数据注入问题

简介:
+关注继续查看

<?php
/*
本实例模仿用户登录时查询数据库的场景

$sql="select * from user where username={$_POST['username']} and userpass=".md5($_POST['userpass']);

mysql_real_escape_string($unescaped_string) 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。 

sprintf() 函数把格式化的字符串写入一个变量中。

sprintf(format,arg1,arg2,arg++)
参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。下面的可能的 format 值:

   %% - 返回百分比符号
   %b - 二进制数
   %c - 依照 ASCII 值的字符
   %d - 带符号十进制数
   %e - 可续计数法(比如 1.5e+3)
   %u - 无符号十进制数
   %f - 浮点数(local settings aware)
   %F - 浮点数(not local settings aware)
   %o - 八进制数
   %s - 字符串
   %x - 十六进制数(小写字母)
   %X - 十六进制数(大写字母)
*/



$sql="select * from user where username=".mysql_real_escape_string($_POST['username'])." and userpass=".md5(mysql_real_escape_string($_POST['userpass']));


$sql=sprintf("select * from user where username='%s' and userpass='%s'",mysql_real_escape_string($_POST['username']),md5(mysql_real_escape_string($_POST['userpass']));


?>










本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1391300,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP的$_GET或$_POST是干什么的?底层原理是什么?
PHP的$_GET或$_POST是干什么的?底层原理是什么?
8 0
php使用CURL模拟POST请求函数
php使用CURL模拟POST请求函数
32 0
php发送post请求,koa2接受数据
php发送post请求,koa2接受数据
16 0
PHP 的基础语法 _post 请求参数的获取| 学习笔记
快速学习 PHP 的基础语法 _post 请求参数的获取。
36 0
PHP:curl发送GET、POST请求
PHP:curl发送GET、POST请求
62 0
PHP模拟GET,POST请求
/** *模拟GET请求 **/ function curlGet($url){ $headerArray =array("Content-type:application/json;","Accept:application/json"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
62 0
PHP技术分享——POST之常规方法
PHP技术分享——POST之常规方法
68 0
php发送post请求的两种方法
php发送post请求的两种方法
262 0
PHP 获取 post 中的 json 数据
每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。
130 0
php 获取HTTP POST中不同格式的数据
HTTP协议中的POST 方法有多中格式的数据协议,在HTTP的head中用不同的Content-type标识.常用的有 application/x-www-form-urlencoded,这是最常见的,就是from表单的格式.
2561 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载