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

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

我是否可以通過(guò)轉(zhuǎn)義單引號(hào)和用單引號(hào)包圍用戶(hù)輸入來(lái)防止SQL注入?

我是否可以通過(guò)轉(zhuǎn)義單引號(hào)和用單引號(hào)包圍用戶(hù)輸入來(lái)防止SQL注入?

慕容3067478 2019-07-27 15:15:08
我是否可以通過(guò)轉(zhuǎn)義單引號(hào)和用單引號(hào)包圍用戶(hù)輸入來(lái)防止SQL注入?我意識(shí)到,在構(gòu)建包含用戶(hù)輸入的查詢(xún)時(shí),參數(shù)化SQL查詢(xún)是對(duì)用戶(hù)輸入進(jìn)行清理的最佳方法,但我想知道接受用戶(hù)輸入和轉(zhuǎn)義任何單引號(hào)并用單引號(hào)包圍整個(gè)字符串有什么問(wèn)題。下面是代碼:sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"用戶(hù)輸入的任何單引號(hào)都將替換為雙引號(hào),這將消除用戶(hù)結(jié)束字符串的能力,因此他們可能鍵入的任何其他內(nèi)容(如分號(hào)、百分比符號(hào)等)都將是字符串的一部分,而不是作為命令的一部分實(shí)際執(zhí)行。我們使用的是MicrosoftSQLServer 2000,我認(rèn)為單引號(hào)是唯一的字符串分隔符,也是轉(zhuǎn)義字符串分隔符的唯一方法,因此無(wú)法執(zhí)行用戶(hù)鍵入的任何內(nèi)容。我看不出有什么方法可以針對(duì)這種情況發(fā)起SQL注入攻擊,但我意識(shí)到,如果這像我所認(rèn)為的那樣防彈,其他人就會(huì)想到這一點(diǎn),這將是一種常見(jiàn)的做法。這個(gè)密碼怎么了?是否有辦法使SQL注入攻擊超過(guò)這種消毒技術(shù)?使用此技術(shù)的示例用戶(hù)輸入將非常有用。最新情況:我仍然不知道如何有效地針對(duì)這段代碼發(fā)起SQL注入攻擊。有幾個(gè)人建議反斜杠會(huì)轉(zhuǎn)義一個(gè)單引號(hào),讓另一個(gè)單引號(hào)結(jié)束字符串,以便字符串的其余部分作為SQL命令的一部分執(zhí)行,我意識(shí)到這個(gè)方法可以將SQL注入MySQL數(shù)據(jù)庫(kù),但是在SQL Server 2000中,我能夠找到的唯一方法是用另一個(gè)單引號(hào)來(lái)轉(zhuǎn)義單引號(hào);反斜杠不能做到這一點(diǎn)。而且,除非有一種方法來(lái)停止轉(zhuǎn)義單引號(hào),否則將不會(huì)執(zhí)行其余的用戶(hù)輸入,因?yàn)樗紝⒈灰暈橐粋€(gè)連續(xù)字符串。我知道有更好的方法來(lái)消毒輸入,但我更感興趣的是學(xué)習(xí)為什么我提供的方法不能工作。如果有人知道針對(duì)這種消毒方法進(jìn)行SQL注入攻擊的任何具體方法,我很樂(lè)意看到它。
查看完整描述

3 回答

?
忽然笑

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

好的,這個(gè)答復(fù)將與問(wèn)題的更新有關(guān):

“如果有人知道針對(duì)這種消毒方法進(jìn)行SQL注入攻擊的任何具體方法,我很樂(lè)意看到它?!?/trans>

現(xiàn)在,除了MySQL反斜杠轉(zhuǎn)義-并且考慮到我們實(shí)際上是在討論MSSQL,實(shí)際上有三種可能的方法來(lái)注入您的代碼

SaniizedInput=“‘”&替換(sInput、“’”)和“‘”

請(qǐng)考慮到,這些代碼并非在任何時(shí)候都有效,并且非常依賴(lài)于其周?chē)膶?shí)際代碼:

  1. 如果基于從數(shù)據(jù)庫(kù)檢索的數(shù)據(jù)重新生成sql查詢(xún),則為二階sql注入。

    逃出

    ,數(shù)據(jù)未經(jīng)轉(zhuǎn)義就連接在一起,可能是間接注入SQL的.看見(jiàn)
  2. 字符串截?cái)?(稍微復(fù)雜一點(diǎn))-場(chǎng)景是有兩個(gè)字段,比如用戶(hù)名和密碼,SQL將這兩個(gè)字段連接起來(lái)。這兩個(gè)字段(或者僅僅是第一個(gè)字段)都有一個(gè)嚴(yán)格的長(zhǎng)度限制。例如,用戶(hù)名限制為20個(gè)字符。假設(shè)你有這樣的代碼:
username = left(Replace(sInput, "'", "''"), 20)

然后你得到的是用戶(hù)名,轉(zhuǎn)義,然后修剪成20個(gè)字符。這里的問(wèn)題-我會(huì)堅(jiān)持我的引號(hào)在第20個(gè)字符(例如,在19個(gè)a‘s之后),你的轉(zhuǎn)義引號(hào)將被削減(在第21字符)。然后是SQL。

sSQL = "select * from USERS where username = '" + username + "'  and password = '" + password + "'"

與上述格式錯(cuò)誤的用戶(hù)名相結(jié)合,將導(dǎo)致密碼已經(jīng)被引號(hào),并將直接包含有效載荷。
3.Unicode走私-在某些情況下,可以傳遞一個(gè)高級(jí)Unicode字符相貌就像一句名言,但是不是-直到它到達(dá)數(shù)據(jù)庫(kù),在那里突然它是..因?yàn)楫?dāng)你驗(yàn)證它的時(shí)候,它不是引號(hào),所以它會(huì)很容易.有關(guān)更多細(xì)節(jié),請(qǐng)參閱我先前的回復(fù),并鏈接到原始研究。




查看完整回答
反對(duì) 回復(fù) 2019-07-28
?
SMILET

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

我意識(shí)到這個(gè)問(wèn)題被問(wèn)了很久了,但是.。

對(duì)“引號(hào)參數(shù)”過(guò)程發(fā)起攻擊的一種方法是使用字符串截?cái)唷8鶕?jù)MSDN,在SQLServer2000SP4(和SQLServer2005SP1)中,過(guò)長(zhǎng)的字符串將被悄悄截?cái)唷?/trans>

引用字符串時(shí),字符串的大小會(huì)增加。每一個(gè)撇號(hào)都是重復(fù)的。然后,可以使用它將部分SQL推送到緩沖區(qū)之外。這樣就可以有效地減少WHERE子句的部分內(nèi)容。

這可能在“用戶(hù)管理”頁(yè)面場(chǎng)景中非常有用,在這個(gè)場(chǎng)景中,您可以濫用“UPDATE”語(yǔ)句來(lái)不執(zhí)行它應(yīng)該做的所有檢查。

因此,如果您決定引用所有參數(shù),請(qǐng)確保您知道字符串大小發(fā)生了什么變化,并確保它不會(huì)被截?cái)唷?/trans>

我建議使用參數(shù)。一直都是。只希望我能在數(shù)據(jù)庫(kù)里執(zhí)行。作為一個(gè)副作用,您更有可能獲得更好的緩存命中,因?yàn)楦嗟恼Z(yǔ)句看起來(lái)是一樣的。(Oracle 8確實(shí)如此)




查看完整回答
反對(duì) 回復(fù) 2019-07-28
  • 3 回答
  • 0 關(guān)注
  • 397 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(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)