4
現在即時通訊使用準備好的語句,選擇/插入數據到MySQL。 好吧,我的問題,我發現了二階攻擊。 所以用戶例如在我的網站上註冊。 並使用電子郵件或用戶名這樣的事情MYSQL二階攻擊問題
"username '; DELETE Orders;--"
這得到插入到mysql表
所以,當我通過準備好的聲明中再次接收數據,並插入/在再次用它做什麼準備好聲明。
我會安全因爲我使用準備好的語句?
樣品:
Get Bad Data:
$sql = "SELECT * FROM USERS where USERID = 1";
...
$stmt->bind_result($username);
...
Next Query:
INSERT or do other things:
$SQL = "SELECT * FROM email WHERE USERNAME = ?";
....
$stmt->bind_param('s', $username);
...
我思前想後,我會安全,我要是會這樣呢?或者有可能泄漏?
,但我會是易受攻擊的,如果我想這樣做:
$sql = "SELECT * FROM email WHERE username = $username";
$stmt = $mysqli->prepare($sql);
$stmt->execute();
感謝:-)
如果你有支持它,你爲什麼不使用準備好的陳述? :) – Marcus
是啊你的權利,我已經做了,但只是好奇......如果我仍然可以攻擊,只是學習編碼:P – user1015314
@Marcus:準備好的語句不能處理所有類型的查詢。有時你不得不去使用裸機,即使在可用和可取的情況下。 –