[英]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.