第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在準(zhǔn)備好的語句中參數(shù)化表名嗎?

我可以在準(zhǔn)備好的語句中參數(shù)化表名嗎?

慕森王 2019-06-01 15:53:55
我可以在準(zhǔn)備好的語句中參數(shù)化表名嗎?我多次使用mysqli_stmt_bind_param函數(shù)。但是,如果我將試圖防止SQL注入的變量分開,則會遇到錯誤。下面是一些代碼示例:function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ){     $statement = $mysqli->prepare("INSERT INTO " .$new_table . " VALUES (?,?,?,?,?,?,?);");     mysqli_stmt_bind_param( $statment, 'sssisss', $Partner, $Merchant, $ips, $score, $category, $overall, $protocol );     $statement->execute();}是否可以某種方式替換.$new_table.與另一個問號語句連接,創(chuàng)建另一個BIND參數(shù)語句,還是添加到現(xiàn)有語句中以防止SQL注入?像這樣或某種形式的:function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ){         $statement = $mysqli->prepare("INSERT INTO (?) VALUES (?,?,?,?,?,?,?);");     mysqli_stmt_bind_param( $statment, 'ssssisss', $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol );     $statement->execute();}
查看完整描述

2 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊

對你問題的簡短回答是“不”。

在最嚴(yán)格的意義上,在數(shù)據(jù)庫級別上,準(zhǔn)備語句只允許將參數(shù)綁定到SQL語句的“值”位。

其中一種思維方式是“在運(yùn)行時執(zhí)行語句時可以替換的東西,而不改變其含義”。表名不是這些運(yùn)行時值之一,因為它決定SQL語句本身的有效性(即哪些列名是有效的),并且在執(zhí)行時更改它可能會改變SQL語句是否有效。

在稍高的級別上,即使在模擬已準(zhǔn)備好的語句參數(shù)替換而不是實際將準(zhǔn)備好的語句發(fā)送到數(shù)據(jù)庫(例如PDO)的數(shù)據(jù)庫接口中,PDO允許您在任何地方使用占位符(因為占位符在發(fā)送到這些系統(tǒng)中的數(shù)據(jù)庫之前被替換),表占位符的值將是一個字符串,并將其封裝在發(fā)送到數(shù)據(jù)庫的SQL中,因此SELECT * FROM ?帶著mytable因為Param最終會發(fā)送SELECT * FROM 'mytable'到數(shù)據(jù)庫,這是無效的SQL。

你最好的選擇就是繼續(xù)

SELECT * FROM {$mytable}

但是你絕對一點(diǎn)兒沒錯應(yīng)該有一個表的白名單,如果是這樣的話,應(yīng)該首先對照這些表進(jìn)行檢查。$mytable來自用戶輸入。


查看完整回答
反對 回復(fù) 2019-06-01
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊

當(dāng)嘗試創(chuàng)建“數(shù)據(jù)庫”時,同樣的規(guī)則也適用。

不能使用準(zhǔn)備好的語句綁定數(shù)據(jù)庫。

即:

CREATE DATABASE IF NOT EXISTS ?

不會起作用的。代之以安全員。

附帶說明:我添加了這個答案(作為一個社區(qū)wiki),因為它通常用來結(jié)束問題,一些人在試圖綁定一個數(shù)據(jù)庫而不是一張桌子和/或一列。


查看完整回答
反對 回復(fù) 2019-06-01
  • 2 回答
  • 0 關(guān)注
  • 816 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號