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

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

逃避一個(gè)字符串是什么意思?

逃避一個(gè)字符串是什么意思?

森林海 2019-09-02 09:51:21
我正在閱讀$ _SESSION ['username']是否需要在進(jìn)入SQL查詢之前進(jìn)行轉(zhuǎn)義?并且它說(shuō)“你需要轉(zhuǎn)義你傳遞給sql查詢的每個(gè)字符串,無(wú)論它的來(lái)源如何”。現(xiàn)在我知道這樣的事情是非?;镜摹9雀杷阉鹘Y(jié)果超過(guò)20,000。Stackoverflow本身只有20頁(yè)的結(jié)果,但沒(méi)有人真正解釋什么是字符串轉(zhuǎn)義或如何做。這只是假設(shè)。你能幫助我嗎?我想學(xué)習(xí),因?yàn)槲乙恢痹谟肞HP制作一個(gè)Web應(yīng)用程序。我看過(guò): 插入轉(zhuǎn)義字符,Java中的所有轉(zhuǎn)義字符是什么?, 無(wú)法通過(guò)addcslashes(), Escape字符轉(zhuǎn)義字符串, mysql_real_escape_string()真正做了什么?, 我如何從PHP中的字符串中轉(zhuǎn)義雙引號(hào)?, MySQL_real_escape_string沒(méi)有添加斜杠?, 從PHP中的字符串中刪除轉(zhuǎn)義序列我可以繼續(xù),但我相信你明白了。這不是懶惰。
查看完整描述

2 回答

?
慕慕森

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

轉(zhuǎn)義字符串意味著減少該字符串中使用的引號(hào)(和其他字符)的歧義。例如,當(dāng)您定義字符串時(shí),通常用雙引號(hào)或單引號(hào)括起來(lái):


"Hello World."

但是,如果我的字符串中有雙引號(hào)怎么辦?


"Hello "World.""

現(xiàn)在我有歧義 - 翻譯不知道我的字符串在哪里結(jié)束。如果我想保留雙引號(hào),我有幾個(gè)選擇。我可以在我的字符串周圍使用單引號(hào):


'Hello "World."'

或者我可以逃避我的報(bào)價(jià):


"Hello \"World.\""

任何以斜杠開(kāi)頭的引用都將被轉(zhuǎn)義,并被理解為字符串值的一部分。


在查詢時(shí),MySQL有一些它所監(jiān)視的關(guān)鍵字,我們不能在查詢中使用它們而不會(huì)造成一些混淆。假設(shè)我們有一個(gè)值表,其中一列被命名為“Select”,我們想要選擇:


SELECT select FROM myTable

我們現(xiàn)在已經(jīng)在查詢中引入了一些含糊之處。在我們的查詢中,我們可以通過(guò)使用反向標(biāo)記來(lái)減少這種模糊性:


SELECT `select` FROM myTable

這消除了我們通過(guò)在選擇字段名稱時(shí)使用不良判斷而引入的混淆。


只需傳遞您的值,就可以為您處理很多這樣的事情mysql_real_escape_string()。在下面的示例中,您可以看到我們通過(guò)此函數(shù)傳遞用戶提交的數(shù)據(jù),以確保它不會(huì)導(dǎo)致我們的查詢出現(xiàn)任何問(wèn)題:


// Query

$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",

            mysql_real_escape_string($user),

            mysql_real_escape_string($password));

其他方法轉(zhuǎn)義字符串,如存在add_slashes,addcslashes,quotemeta,和更多的,但你會(huì)發(fā)現(xiàn),當(dāng)我們的目標(biāo)是運(yùn)行安全的查詢,由大開(kāi)發(fā)商喜歡mysql_real_escape_string或pg_escape_string(在PostgreSQL中的上下文。


查看完整回答
反對(duì) 回復(fù) 2019-09-02
?
拉風(fēng)的咖菲貓

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

某些字符對(duì)您正在使用的SQL數(shù)據(jù)庫(kù)具有特殊含義。在查詢中使用這些字符時(shí),它們可能會(huì)導(dǎo)致意外和/或意外行為,包括允許攻擊者危害您的數(shù)據(jù)庫(kù)。為了防止這些字符以這種方式影響查詢,需要對(duì)其進(jìn)行轉(zhuǎn)義,或者以不同的方式說(shuō)明,需要告知數(shù)據(jù)庫(kù)不要將它們視為此查詢中的特殊字符。

在的情況下mysql_real_escape_string(),它避開(kāi)\x00\n,\r,\,',"\x1a作為這些中,當(dāng)沒(méi)有逃脫,可引起前面提到的問(wèn)題,其包括與一個(gè)MySQL數(shù)據(jù)庫(kù)的SQL注入。


查看完整回答
反對(duì) 回復(fù) 2019-09-02
  • 2 回答
  • 0 關(guān)注
  • 674 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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