提供Discuz ,ECShop ,PHPCMS ,帝国CMS ,CSS教程 ,PHP教程 ,DedeCMS ,WordPress ,HTML教程等cms问题查询.
当前位置: PHP问题 > php怎样防备sql注入【php问题】,php,防止,sql,注入

简朴的SQL注入示例

比方,A有一个银行网站。已为银行客户供应了一个收集界面,以检察其帐号和余额。您的银行网站运用http://example.com/get_account_details.php?account_id=102等网址从数据库中提取细致信息。

比方,get_account_details.php的代码,以下所示:

$accountId = $_GET['account_id'];
$query = "SELECT accountNumber, balance FROM accounts WHERE accountId = $accountId";

客户accountId经由过程查询字符串作为account_id通报。与上面的Url一样,假如用户的帐户ID为102而且它在查询字符串中通报。Php剧本将建立以下所示的查询。

$query = "SELECT accountNumber, balance FROM accounts WHERE accountId = 102";

accountId 102猎取accountNumber和余额细致信息,并供应给客户。

相干引荐:《php教程》

我们假定另一个场景,智能客户已经由过程了account_id,就像0 OR 1=1查询字符串一样。如今会发作什么?PHP剧本将建立以下所示的查询并在数据库上实行。

$query = "SELECT accountNumber, balance FROM accounts WHERE accountId = 0 OR 1=1";

检察由剧本和数据库返回的效果建立的查询。您能够看到此查询返回了一切帐号和可用余额。

这称为SQL注入。这是一个简朴的体式格局,实在能够有许多方法来举行SQL注入。下面我们就来看一下怎样运用PHP MySQLi驱动程序和PHP PDO驱动程序防备SQL注入。

运用PHP-MySQLi驱动程序

能够运用PHP-MySQLi驱动程序预处理语句来防止这些范例的SQL注入。

PHP防备SQL注入的代码以下:

$accountId = $_GET['account_id'];  
if ($stmt = $mysqli->prepare('SELECT accountNumber, balance FROM accounts WHERE accountId = ?')) {   
    $stmt->bind_param("s", $accountId);  
    $stmt->execute();  
 $result = $stmt->get_result();  
 while ($row = $result->fetch_assoc()) {
 // do something here
 }  
    $stmt->close(); 
}

运用PHP-PDO驱动程序

能够运用PHP-PDO驱动程序prepare语句来防止这些范例的SQL注入。

PHP处理上面的SQL注入题目的代码以下:

$accountId = $_GET['account_id'];  
if ($stmt = $pdo->prepare('SELECT accountNumber, balance FROM accounts WHERE accountId = :accountId')) {   
    $stmt->execute(array('name' => $name));  
 foreach ($stmt as $row) {
 // do something here
 }  
    $stmt->close(); 
}

以上就是php怎样防备sql注入的细致内容,更多请关注ki4网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"php怎样防备sql注入【php问题】,php,防止,sql,注入"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线