PHP mysql_real_escape_string() function
Definition and Usage
Fannin mysql_real_escape_string() yana tattara karfin dabbobi na ɗaukar dabbobi wanda ke amfani da SQL statement.
Kwayoyin na:
- \x00
- \n
- \r
- \
- '
- "
- \x1a
Idan a samar da, fannin na wannan yana samar da ɗaukar dabbobi. Idan ba'a samar da, za'a samar da false.
Syntax
mysql_real_escape_string(string,connection)
Parameter | Description |
---|---|
string | Mallamaki. Sheba ɗaukar da yau ake ɗauka. Idan ba'a sheba, za'a amfani da kiyasawar na karshe. |
connection | Optional. Sheba MySQL kiyasawa. Idan ba'a sheba, za'a amfani da kiyasawar na karshe. |
Kira
Fannin na wannan yana: string tariya karfin dabbobin dabbobi, kuma yana gudanar da amfani da kiyasawa na ɗaukar ɗaukar, yana samar da amfani don: mysql_query().
Tuntuba da Kwayoyin
Tuntuba:An fi amfani da fannin na wannan don kiwari girmama database.
Shiyya
Amfani 1
<?php $con = mysql_connect("localhost", "hello", "321"); if (!$con) { die('Could not connect: ' . mysql_error()); } // Code don gudanar da suna ɗaya da ɗaya da ɗaya // Tattara suna ɗaya da ɗaya da ɗaya, don amfani da SQL $user = mysql_real_escape_string($user); $pwd = mysql_real_escape_string($pwd); $sql = "SELECT * FROM users WHERE user='" . $user . "' AND password='" . $pwd . "'" // More code mysql_close($con); ?>
Amfani 2
Girmama database. Amfani da shi don gudanar da: waɗanda ake yi imanin ba'a fi imanin yi amfani da mysql_real_escape_string() function ba:
<?php $con = mysql_connect("localhost", "hello", "321"); if (!$con) { die('Could not connect: ' . mysql_error()); } $sql = "SELECT * FROM users WHERE user='{$_POST['user']}' AND password='{$_POST['pwd']}'"; mysql_query($sql); // Ba'a baɗa ce ɗauka suna ɗaya da ɗaya // Iya baɗa ce ko ake ɗauka, misali: $_POST['user'] = 'john'; $_POST['pwd'] = "' OR ''='"; // Dabbobin code... mysql_close($con); ?>
nadida SQL kira zaiwai ka na:
SELECT * FROM users WHERE user='john' AND password='' OR ''=''
این بدان معناست که هر کاربری نیازی به ورود با رمز عبور معتبر ندارد تا وارد شود.
مثال 3
روش صحیح پیشگیری از حملات پایگاه داده:
<?php function check_input($value) { // برچسبهای مایل به عقب را حذف کنید if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // اگر عدد نیست، قیدها را اضافه کنید if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } $con = mysql_connect("localhost", "hello", "321"); if (!$con) { die('Could not connect: ' . mysql_error()); } // انجام SQL امن $user = check_input($_POST['user']); $pwd = check_input($_POST['pwd']); $sql = "SELECT * FROM users WHERE user=$user AND password=$pwd"; mysql_query($sql); mysql_close($con); ?>