簡體   English   中英

mysqli_real_escape_string使用哪種引號?

[英]What kinds of quotes to use with mysqli_real_escape_string?

我在程序化mysqli中創建了以下腳本,因為我只是從舊版mysql開始。 我不確定查詢周圍引號的種類以防止注入。 有些用戶將示例與'其他人與" ,所以現在我很困惑。我可以被以下代碼注入或攻擊嗎?正確的引號是什么?

$username = mysqli_real_escape_string($database,$_POST['form_user']);
$password = mysqli_real_escape_string($database,$_POST['form_password']);

$members = "SELECT * FROM `accounts` WHERE `member` = '$username'";
$result = mysqli_query($database,$members);

我只是一個初學者,因此現在面向對象或PDO或准備好的語句對我來說很困難,因此我只需要改進此腳本並使其更安全,但是圍繞查詢var的示例和符號如此之多,我對當前和現在感到困惑不安全。

mysqli_real_escape_string底層C mysql庫的mysql_real_escape_string函數 (或等效函數 ),該函數對字符進行編碼:

\\'"NUL (ASCII 0), \\n\\r和Control + Z

因此, '"都被轉義了。這意味着您可以在查詢中使用它來分隔字符串,MySQL 允許同等地使用雙引號和單引號的字符串

我知道您知道這一點,但您確實應該立即着手准備聲明,而不是逃脫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM