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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

我什么時(shí)候應(yīng)該使用準(zhǔn)備好的報(bào)表?

我什么時(shí)候應(yīng)該使用準(zhǔn)備好的報(bào)表?

PHP
暮色呼如 2019-07-05 16:07:41
我什么時(shí)候應(yīng)該使用準(zhǔn)備好的報(bào)表?最初,我使用MySQL_CONNECT和MySQL_Query來(lái)做一些事情。然后我學(xué)到了SQL注入,所以我試著學(xué)習(xí)如何使用準(zhǔn)備好的語(yǔ)句。我理解PDO類(lèi)的準(zhǔn)備和執(zhí)行函數(shù)對(duì)于防止SQL注入是如何有用的。但是,只有當(dāng)用戶(hù)輸入被存儲(chǔ)到數(shù)據(jù)庫(kù)中時(shí),才需要準(zhǔn)備好語(yǔ)句。仍然使用mysql_num_row可以嗎?因?yàn)槲也⒉徽娴臅?huì)因?yàn)槭褂眠@個(gè)函數(shù)而冒被黑客攻擊的風(fēng)險(xiǎn)嗎?還是用預(yù)先準(zhǔn)備好的語(yǔ)句來(lái)做這件事更安全?對(duì)于涉及使用MySQL的任何事情,我應(yīng)該使用準(zhǔn)備好的語(yǔ)句嗎?為什么?我真的很感激你的回答和反饋。謝謝。
查看完整描述

3 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

一直都是。100%的時(shí)間,使用它。而且即使你不需要使用它。還是用吧。


mysql_*不推薦使用函數(shù)。(注意到那個(gè)紅色的大盒子了嗎?)

警告這個(gè)擴(kuò)展在PHP5.5.0中被廢棄,在PHP7.0.0中被刪除。相反,MySQLiPDO_MySQL應(yīng)該使用擴(kuò)展。另見(jiàn)MySQL:選擇API指南和相關(guān)常見(jiàn)問(wèn)題想了解更多信息。這一職能的替代辦法包括:

你最好用PDOMySQLi..任何一個(gè)2在使用準(zhǔn)備好的語(yǔ)句時(shí),將足夠作為兼容的庫(kù)。

信任用戶(hù)的輸入,沒(méi)有準(zhǔn)備好的聲明/消毒-這就像把你的車(chē)丟在一個(gè)糟糕的街區(qū),不上鎖,鑰匙在點(diǎn)火上。你基本上是說(shuō),進(jìn)來(lái)拿我的糖果

你應(yīng)該絕不可能我的意思是永遠(yuǎn)不要相信用戶(hù)的輸入。除非你想這樣

在引用數(shù)據(jù)并存儲(chǔ)數(shù)據(jù)時(shí),如注釋中所述,您可以絕不可能不應(yīng)該信任任何與用戶(hù)相關(guān)的輸入。除非您101%確信用于操作上述數(shù)據(jù)庫(kù)/值的數(shù)據(jù)是硬編碼到您的應(yīng)用程序中,否則您必須使用預(yù)先準(zhǔn)備好的語(yǔ)句。

現(xiàn)在開(kāi)始討論為什么要使用預(yù)先準(zhǔn)備好的語(yǔ)句。很簡(jiǎn)單。以防止SQL注入,但以最直接的方式可能。準(zhǔn)備好的語(yǔ)句的工作方式很簡(jiǎn)單,它將查詢(xún)數(shù)據(jù)一起,但分開(kāi)(如果這有道理的話(huà))-我的意思是:

Prepared StatementsQuery: SELECT foo FROM bar WHERE foo = ?Data:  [? = 'a value here']

與它的前身相比,您用數(shù)據(jù)截?cái)嗔艘粋€(gè)查詢(xún),然后將它作為一個(gè)整體發(fā)送-反過(guò)來(lái),這意味著它是作為單個(gè)事務(wù)執(zhí)行的,從而導(dǎo)致SQL注入漏洞。

這是一個(gè)偽的PHP PDO示例,向您展示準(zhǔn)備好的語(yǔ)句/綁定的簡(jiǎn)單性。

$dbh = PDO(....); // dsn in there mmm yeahh$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();

摘自PHP手冊(cè)為PDO準(zhǔn)備的報(bào)表


多讀


查看完整回答
反對(duì) 回復(fù) 2019-07-05
?
炎炎設(shè)計(jì)

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

如果應(yīng)用程序接受任何用戶(hù)輸入,則100%使用預(yù)先準(zhǔn)備的語(yǔ)句。


你好像有點(diǎn)困惑。首先,請(qǐng)不要用mysql_*;mysql_*功能已經(jīng)過(guò)時(shí)了,棄用,而且沒(méi)有安全感。使用MySQLiPDO相反。第二,mysql_num_rows與準(zhǔn)備好的語(yǔ)句無(wú)關(guān),也不是PDO特性。您在運(yùn)行查詢(xún)之前準(zhǔn)備語(yǔ)句,而不是在希望計(jì)數(shù)行時(shí)在語(yǔ)句之后進(jìn)行準(zhǔn)備。

至于準(zhǔn)備發(fā)言的時(shí)間,@Mike‘Pomax’Kamerman在評(píng)論中指出了這一點(diǎn)。如果你曾經(jīng),甚至一次,使用任何用戶(hù)曾經(jīng)接觸過(guò)的數(shù)據(jù)-即使是一個(gè)被信任的用戶(hù)-或者是由任何類(lèi)型的第三方或第三方應(yīng)用程序生成的,包括瀏覽器,使用預(yù)先準(zhǔn)備好的語(yǔ)句。只有當(dāng)您的數(shù)據(jù)100%是硬編碼或完全由您的代碼生成(就像一個(gè)簡(jiǎn)單的計(jì)數(shù)器變量),您才能信任它。

例如,您不能信任:

  • 用戶(hù)名
  • 密碼
  • 電子郵件地址
  • 用戶(hù)評(píng)論
  • 電話(huà)號(hào)碼
  • 日期
  • 搜索字符串
  • 瀏覽器客戶(hù)端字符串
  • 信用卡號(hào)碼
  • 上傳文件名
  • 任何

    由用戶(hù)創(chuàng)建或用戶(hù)可以操作的其他類(lèi)型的輸入。

當(dāng)然,在將它們放入數(shù)據(jù)庫(kù)之前,您應(yīng)該驗(yàn)證所有這些(例如,檢查電子郵件地址實(shí)際上是電子郵件地址)。但即便如此,使用預(yù)先準(zhǔn)備好的語(yǔ)句也是安全的方法。


查看完整回答
反對(duì) 回復(fù) 2019-07-05
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

Mysql_*已經(jīng)被廢棄了,所以更好的切換mysqli_*PDO

防止SQL注入(MySQL):-如何防止PHP中的SQL注入?.

以及準(zhǔn)備好的語(yǔ)句(這些SQL語(yǔ)句被發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器,并由數(shù)據(jù)庫(kù)服務(wù)器與任何參數(shù)分開(kāi)解析)。)在您的每個(gè)用戶(hù)生成的查詢(xún)數(shù)據(jù)上使用。

就像在發(fā)布數(shù)據(jù)時(shí)一樣,您可以通過(guò)查詢(xún)將記錄匹配/獲取到數(shù)據(jù)庫(kù)。也就是說(shuō),當(dāng)您使用表單數(shù)據(jù)觸發(fā)查詢(xún)時(shí)。


查看完整回答
反對(duì) 回復(fù) 2019-07-05
  • 3 回答
  • 0 關(guān)注
  • 410 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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