www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]定義和用法mysql_real_escape_string() 函數(shù)轉(zhuǎn)義 SQL 語句中使用的字符串中的特殊字符。下列字符受影響:如果成功,則該函數(shù)返回被轉(zhuǎn)義的字符串。如果失敗,則返回 false。m


定義和用法



mysql_real_escape_string() 函數(shù)轉(zhuǎn)義 SQL 語句中使用的字符串中的特殊字符。


下列字符受影響:


如果成功,則該函數(shù)返回被轉(zhuǎn)義的字符串。如果失敗,則返回 false。


mysql_real_escape_string(string,connection)
參數(shù) 描述
string 必需。規(guī)定要轉(zhuǎn)義的字符串。
connection 可選。規(guī)定 MySQL 連接。如果未規(guī)定,則使用上一個連接。
本函數(shù)將 string 中的特殊字符轉(zhuǎn)義,并考慮到連接的當(dāng)前字符集,因此可以安全用于 mysql_query()。
提示和注釋


提示:可使用本函數(shù)來預(yù)防數(shù)據(jù)庫攻擊。
<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
? {
? die('Could not connect: ' . mysql_error());
? }


// 獲得用戶名和密碼的代碼


// 轉(zhuǎn)義用戶名和密碼,以便在 SQL 中使用
$user = mysql_real_escape_string($user);
$pwd = mysql_real_escape_string($pwd);


$sql = "SELECT * FROM users WHERE
user='" . $user . "' AND password='" . $pwd . "'"


// 更多代碼


mysql_close($con);
?>
數(shù)據(jù)庫攻擊。本例演示如果我們不對用戶名和密碼應(yīng)用 mysql_real_escape_string() 函數(shù)會發(fā)生什么:


<?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);


// 不檢查用戶名和密碼
// 可以是用戶輸入的任何內(nèi)容,比如:
$_POST['user'] = 'john';
$_POST['pwd'] = "' OR ''='";


// 一些代碼...


mysql_close($con);
?>
那么 SQL 查詢會成為這樣:


SELECT * FROM users
WHERE user='john' AND password='' OR ''=''
這意味著任何用戶無需輸入合法的密碼即可登陸。


預(yù)防數(shù)據(jù)庫攻擊的正確做法:


<?php
function check_input($value)
{
// 去除斜杠
if (get_magic_quotes_gpc())
? {
? $value = stripslashes($value);
? }
// 如果不是數(shù)字則加引號
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);
?>

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

前言sql優(yōu)化是一個大家都比較關(guān)注的熱門話題,無論你在面試,還是工作中,都很有可能會遇到。如果某天你負(fù)責(zé)的某個線上接口,出現(xiàn)了性能問題,需要做優(yōu)化。那么你首先想到的很有可能是優(yōu)化sql語句,因為它的改造成本相對于代碼來說...

關(guān)鍵字: sql

摘 要:“Apache+php+ MySQL”組成了一套完整的開發(fā)B/S架構(gòu)的網(wǎng)絡(luò)信息系統(tǒng)的工具。文中以該套工具開發(fā)產(chǎn)品售后服務(wù)管理系統(tǒng)為例,介紹了開發(fā)過程中的技術(shù)難點及解決方法。

關(guān)鍵字: Apache php MySQL 產(chǎn)品售后服務(wù)管理系統(tǒng)

無論是開發(fā)、測試,還是DBA,都難免會涉及到數(shù)據(jù)庫的操作,比如:創(chuàng)建某張表,添加某個字段、添加數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)等等。

關(guān)鍵字: 數(shù)據(jù)庫 sql

PHP 7.4.9 版本現(xiàn)已發(fā)布,具體更新內(nèi)容如下:Apache:修復(fù)了錯誤#79030(升級 apache2handler 的 php_apache_sapi_get_request_time 以返

關(guān)鍵字: php

如果使用美國服務(wù)器創(chuàng)建網(wǎng)站,則必須在美國服務(wù)器系統(tǒng)上創(chuàng)建環(huán)境。 今天,我將介紹美國服務(wù)器Linux系統(tǒng)的工作方式。

關(guān)鍵字: apache Linux php

近日消息,PHP 8.0將于11月發(fā)布,但當(dāng)這個重要的新版本出現(xiàn)時,它遇到了很大的挫折,Windows將不支持它,原因未知。

關(guān)鍵字: php Windows 微軟

前言 上一篇總結(jié)了Mysql的鎖機制,通過讀者的反映和閱讀量顯示,總體還是不錯的,感興趣的可以閱讀一下[大廠面試官必問的Mysql鎖機制]。 寫了那么多的Mysql文章,有讀者問我是不是dba,工作真的需要掌握那么深嗎。...

關(guān)鍵字: sql

2020 年 6 月 8 日,PHP 迎來了自己的 25 周歲生日。JetBrains 在博客中梳理了該語言自 1995 年誕生以來的種種歷程,這種語言最初是用 C 語言編寫的一組通用網(wǎng)關(guān)接口(C

關(guān)鍵字: php

前言 前幾天有粉絲和我聊到他找工作面試大廠時被問的問題,因為現(xiàn)在疫情期間,找工作也特別難找。他說面試的題目也比較難,都偏向于一兩年的工作經(jīng)驗的面試題。 他說在一面的時候被問到Mysql的面試題,索引那塊自己都回答比較滿意...

關(guān)鍵字: sql

? ? ? ? ? ? ? ? ? ? ? ? 我所寫的項目是使用Maven開發(fā),在pom.xml中添加如下必要依賴: ? ? ? ? 添加com.microsoft.sqlserver的mssql-

關(guān)鍵字: server sql 存儲過程
關(guān)閉