欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

mysql注入在PHP代碼層面的防御手段是什么

今天就跟大家聊聊有關(guān)MySQL注入在PHP代碼層面的防御手段是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、松北網(wǎng)站維護(hù)、網(wǎng)站推廣。

前置知識(shí)

什么是sql注入?

服務(wù)端沒(méi)有對(duì)用戶提交的參數(shù)進(jìn)行嚴(yán)格的過(guò)濾,導(dǎo)致可以將SQL語(yǔ)句插入到可控參數(shù)中,改變?cè)械腟QL語(yǔ)義結(jié)構(gòu),從而執(zhí)行攻擊者所預(yù)期的結(jié)果。

sql注入的探測(cè)

判斷數(shù)據(jù)庫(kù)類型

  • 端口

  • 報(bào)錯(cuò)信息

一些中間件常用的數(shù)據(jù)庫(kù)

PHP MySQL

ASP SQL Server

ASPX SQL Server

JSP MySQL Oracle

尋找SQL注入點(diǎn)

尋找與數(shù)據(jù)庫(kù)交互的可控參數(shù)

  • GET

  • POST

  • COOKIE

  • HTTP頭

確定注入點(diǎn)

確定注入點(diǎn)的核心思想就是判斷插入的數(shù)據(jù)是否被當(dāng)做SQL語(yǔ)句執(zhí)行??梢允褂煤?jiǎn)單的算術(shù)運(yùn)算來(lái)測(cè)試。

SQL注入的防御的原理

mysql注入在PHP代碼層面的防御手段是什么

  • SQL語(yǔ)句預(yù)編譯綁定變量

  • 使用足夠嚴(yán)格的過(guò)濾和安全防御

  1. Web應(yīng)用向數(shù)據(jù)庫(kù)傳遞語(yǔ)句模板

  2. 數(shù)據(jù)庫(kù)對(duì)模板進(jìn)行編譯,編譯以后語(yǔ)義將不會(huì)改變

  3. 變量綁定,Web應(yīng)用向數(shù)據(jù)庫(kù)傳遞變量,變量只會(huì)被當(dāng)做數(shù)據(jù)識(shí)別,不會(huì)被作為語(yǔ)義結(jié)構(gòu)識(shí)別

  4. 執(zhí)行SQL語(yǔ)句

SQL注入的核心:數(shù)據(jù)和代碼的混淆。

PDO

什么是PDO?

PHP 數(shù)據(jù)對(duì)象 (PDO) 擴(kuò)展為PHP訪問(wèn)數(shù)據(jù)庫(kù)定義了一個(gè)輕量級(jí)的一致接口。

PDO 提供了一個(gè)數(shù)據(jù)訪問(wèn)抽象層,這意味著,不管使用哪種數(shù)據(jù)庫(kù),都可以用相同的函數(shù)(方法)來(lái)查詢和獲取數(shù)據(jù)。

PDO是php中最典型的預(yù)編譯查詢方式。

PDO場(chǎng)景下的SQL注入

PDO與安全相關(guān)的問(wèn)題主要的設(shè)置有下面三項(xiàng):

PDO::ATTR_EMULATE_PREPARES  # 模擬預(yù)編譯
PDO::ATTR_ERRMODE   # 報(bào)錯(cuò)
PDO::MYSQL_ATTR_MULTI_STATEMENTS    # 多語(yǔ)句執(zhí)行

第一項(xiàng)為模擬預(yù)編譯,如果為False,則不存在SQL注入;如果為True,則PDO并非真正的預(yù)編譯,而是將輸入統(tǒng)一轉(zhuǎn)化為字符型,并轉(zhuǎn)義特殊字符。這樣如果是gbk編碼則存在寬字節(jié)注入。

第二項(xiàng)而報(bào)錯(cuò),如果設(shè)置為True,可能會(huì)泄露一些信息。

第三項(xiàng)為多語(yǔ)句執(zhí)行,如果設(shè)置為True,且第一項(xiàng)也為True,則會(huì)存在寬字節(jié)+堆疊注入的雙重漏洞。

對(duì)于此類問(wèn)題的防范,主要有以下三個(gè)方面:

  1. 合理、安全的使用gbk編碼。即使采用PDO預(yù)編譯的方式,如果開(kāi)啟模擬預(yù)編譯,依然可以造成寬字節(jié)注入。

  2. 使用PDO時(shí),一定要將模擬預(yù)編譯設(shè)置為false。

  3. 可采用Prepare Statement手動(dòng)預(yù)編譯,防御SQL注入。

代碼示例

$dbh = new PDO('mysql:dbname=testdb;host=127.0.0.1', $user, $password);
$stmt = $dbh->prepare('INSERT INTO REGISTRY (name, value) VALUES (:name, :value)');
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

或者

$dbh = new PDO('mysql:dbname=testdb;host=127.0.0.1', $user, $password);
$stmt = $dbh->prepare('UPDATE people SET name = :new_name WHERE id = :id');
$stmt->execute( array('new_name' => $name, 'id' => $id) );

詳細(xì)請(qǐng)參考:

從寬字節(jié)注入認(rèn)識(shí)PDO的原理和正確使用

SQL注入基礎(chǔ)整理及Tricks總結(jié)

技術(shù)分享 | MySQL 注入攻擊與防御

ODBC

ODBC 是一種應(yīng)用程序編程接口(Application Programming Interface,API),使我們有能力連接到某個(gè)數(shù)據(jù)源(比如一個(gè) MS Access 數(shù)據(jù)庫(kù))。

代碼示例

$stmt = odbc_prepare( $conn, 'SELECT * FROM users WHERE email = ?' );
$success = odbc_execute( $stmt, array($email) );

或者

$dbh = odbc_exec($conn, 'SELECT * FROM users WHERE email = ?', array($email));
$sth = $dbh->prepare('SELECT * FROM users WHERE email = :email');
$sth->execute(array(':email' => $email));

MYSQLi

MySQLi函數(shù)允許你訪問(wèn)MySQL數(shù)據(jù)庫(kù)服務(wù)器。

$stmt = $db->prepare('update name set name = ? where id = ?');
$stmt->bind_param('si',$name,$id);
$stmt->execute();

框架

對(duì)于框架的話只要遵循框架的API就好,例如wp查詢

global $wpdb;
$wpdb->query(
$wpdb->prepare( 'SELECT name FROM people WHERE id = %d OR email = %s',
$person_id, $person_email
)
);
global $wpdb;
$wpdb->insert( 'people',
array(
'person_id' => '123',
'person_email' => 'bobby@tables.com'
),
array( '%d', '%s' )
);

看完上述內(nèi)容,你們對(duì)mysql注入在PHP代碼層面的防御手段是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)站標(biāo)題:mysql注入在PHP代碼層面的防御手段是什么
路徑分享:http://aaarwkj.com/article30/gjdcso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)面包屑導(dǎo)航、網(wǎng)站改版、做網(wǎng)站網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司
精品人妻一区二区三区mp4| 国产午夜福利一区在线| 午夜精品一区二区亚洲| 久久草福利视频在线观看| 欧美日韩台湾一区二区| 亚洲黄色av在线免费观看 | 观看女性真实高潮的合集| 国产精品一区二区夜夜夜| 人妻少妇久久中文字幕韩| 中文字幕一区二区不卡顿| 日韩精品在线观看大全套| 午夜美女精品福利视频| 日本丰满熟女毛茸茸的黑逼| 日本亚洲美丽少妇天堂| 国产在线视频不卡福利片| 中文字幕日韩欧美第一页| 日本高清av一区二区| 中文字幕成人资源网站| 免费的一区二区中文字幕| 亚洲熟女熟妇另类中文| 人妻少妇av免费久久蜜臀| 97水蜜桃视频在线观看| 日韩精品色av一区二区 | 婷婷丁香久久五月婷婷| 欧美v日韩v亚洲综合国产高清| 麻豆午夜福利在线播放| 国产白丝精品爽爽久久| 欧美亚洲午夜精品久久久| 欧美亚洲另类色自拍偷拍| 92午夜福利在线视频| 国产精品一区久久91| 国产成人综合久久二区| 国产一区二区欧美精品| 精品视频一区二区三区中文字幕| 欧美性生活真实的视频| 国产欧美成人综合色就色| av天堂资源地址在线观看| 成人高清在线观看91| 午夜激情毛片在线观看| av一区二区三区不卡在线看| 18末年禁止观看免费软件|