2013-03-24 67 views
-2

我們知道像往常一樣的網站使用功能,如mysqli_query()和MySQL的PHP​​驅動程序不允許在single多個查詢 - >查詢()調用(但你可以做的phpmyadmin SQL運行的部分儘可能多),所以我們不能直接添加DELETE/UPDATE/INSERT,但在某些情況下濫用修改數據的可能性。第一件事就是在那種情況下,我認爲80%的潛在風險(可能是數據丟失)已經消失了! &第二個是,依靠這個知識,爲什麼大多數注入教程都是基於並集中於多個查詢?SQL注入難題

+0

你確定大部分教程都是關於多重查詢的嗎? – 2013-03-24 12:41:36

+0

@silentboy,如果我信任我的眼睛,是的 – revo 2013-03-24 12:45:01

+0

然後,也許你已經看到剛剛在這個主題上發佈1/2教程的博客的教程。我認爲大多數注射劑都是基於消毒 – 2013-03-24 12:51:17

回答

1

80%的潛在風險(可能是數據丟失)消失了!

這個假設是錯誤的。

爲什麼大多數注入教程都基於多個查詢?

,因爲它只是一個簡單易懂例如,概念一個證明。就像一個「如果約翰有兩個蘋果和邁克五...」。如果真正的邁克不想讓蘋果吃飽,這並不意味着算術全是錯誤的。

SQL注入Concudrum

有針劑NO難題。
注射時沒有意思。
沒有風險的百分比計算,但只是一個二分法:或者你的應用程序是否被破壞。
只有一個簡單的規則 - 總是正確地格式化數據,並且您將永遠忘記注射。

+0

我沒有說過使用多個查詢來演示一個'如何做'是錯誤的和錯誤的!我說過,爲什麼他們在實際工作中專注於多個查詢,單個查詢是最常用的查詢! – revo 2013-03-24 12:41:54

-1

很長時間以來,PHP一直禁止針對單個查詢()語句運行多個查詢。這只是防止sql注入的一部分。你也必須逃避你的投入,使用準備好的陳述,使你的表名和列很難猜測等等。

SQL注入攻擊的最簡單的例子確實涉及到一個查詢被欺騙執行多個查詢,但顯然PHP通過已經提到的限制防止了很多這樣的攻擊。但是,子查詢之類的事情仍然有可能,所以這不是很好的證明。我認爲不可能讓sql注入完全不可能,因爲人們不斷尋找誘騙腳本的新方法。

您所能做的最好的事情就是知道如何完成這些攻擊並根據當前接受的最佳實踐編寫代碼以防止此類攻擊。如果你已經完成了所有這些工作並仍然遭到黑客入侵,那麼可能(但不是肯定)它不是你的SQL,而是你的安全性中最薄弱的環節。據我所知,更多的時候黑客通過社交工程技術獲得成功。

製作一個不可破解的系統幾乎是不可能的,所以你可以做的最好的事情是讓它很難被破解,因此,不是「低掛的果實」,換句話說,不是一個簡單的目標。

+0

爲什麼選擇投票?我沒有回答這個問題嗎? – starshine531 2013-03-24 13:20:36

+0

tnx爲答案,我沒有足夠的聲譽downvote,但是如果我有,我也不會downvote。 – revo 2013-03-24 13:58:53