丰满爆乳无码一区二区三区,欧美RAPPER潮水抽筋,精品夜夜爽欧美毛片视频,欧美XXXXX高潮喷水

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

網(wǎng)站建設(shè)之mysql防止sql注入

發(fā)表日期:2019-03-13 10:20:14   作者來(lái)源:方維網(wǎng)絡(luò)   瀏覽:3666   標(biāo)簽:    
在網(wǎng)站建設(shè)的過(guò)程中,隨著時(shí)間的積累,數(shù)據(jù)庫(kù)的數(shù)據(jù)量越來(lái)越大,可以說(shuō),一個(gè)網(wǎng)站最重要的部分就是數(shù)據(jù),一旦數(shù)據(jù)泄漏,會(huì)對(duì)公司造成難以想像的影響,所以數(shù)據(jù)的安全行至關(guān)重要。任何一個(gè)網(wǎng)站都有一個(gè)后臺(tái),方便對(duì)整個(gè)網(wǎng)站進(jìn)行管理。后臺(tái)往往有一個(gè)登錄系統(tǒng),這個(gè)登錄系統(tǒng),就很有可能通過(guò)一些方法直接驗(yàn)證通過(guò)從而進(jìn)入你的后臺(tái),導(dǎo)致我們網(wǎng)站數(shù)據(jù)泄漏。今天就給大家介紹一些方法,防止這種情況發(fā)生。具體操作如下:
首先我們來(lái)看產(chǎn)生結(jié)果的原因。
當(dāng)一個(gè)變量從表單傳入到php,需要查詢(xún)mysql的話(huà),需要進(jìn)行處理。
舉例:
$unsafe_variable = $_POST['user_input']; 
mysqli_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 
用戶(hù)可以輸入諸如 : value'); DROP TABLE table; ,SQL語(yǔ)句就變成這樣了:
INSERT INTO table (column) VALUES('value'); DROP TABLE table;') 
執(zhí)行的結(jié)果就是table表被刪掉了。
這是一種常見(jiàn)的sql注入方法,那么在程序中,應(yīng)該怎樣預(yù)防呢?
方法一:mysql_real_escape_string() 
由于addslashes()不檢測(cè)字符集,所以有寬字節(jié)注入風(fēng)險(xiǎn),所以php中添加了這個(gè)函數(shù)。
這個(gè)函數(shù)本來(lái)是mysql的擴(kuò)展,但是由于存在寬字節(jié)的問(wèn)題,php基于mysql的擴(kuò)展開(kāi)發(fā)了此函數(shù)。
mysql_real_escape_chars()是mysql_escape_chars()的替代用法。
與addslashes()相比,不僅會(huì)將' " \ NOL(ascii的0)轉(zhuǎn)義,還會(huì)把\r \n進(jìn)行轉(zhuǎn)義。同時(shí)會(huì)檢測(cè)數(shù)據(jù)編碼。
按php官方的描述,此函數(shù)可以安全的用于mysql。
 
方法二:預(yù)處理查詢(xún) (Prepared Statements) 
a. 先預(yù)發(fā)送一個(gè)sql模板過(guò)去
b. 再向mysql發(fā)送需要查詢(xún)的參數(shù)
就好像填空題一樣,不管參數(shù)怎么注入,mysql都能知道這是變量,不會(huì)做語(yǔ)義解析,起到防注入的效果,這是在mysql中完成的。
A.使用mysqli:prepare()實(shí)現(xiàn)
$mysqli = new mysqli("example.com", "user", "password", "database");
$stmt = $mysqli>prepare("SELECT id, label FROM test WHERE id = ?");
$stmt>bind_param(1, $city);
$stmt>execute();
$res = $stmt>get_result();
$row = $res>fetch_assoc();
 
B. 使用pdo實(shí)現(xiàn)
pdo是一個(gè)php官方推薦的數(shù)據(jù)庫(kù)抽象層,提供了很多實(shí)用的工具。

使用pdo的預(yù)處理參數(shù)化查詢(xún)可以有效防止sql注入。
使用方法跟上面差不多,區(qū)別在于pdo提供了更多樣的方法。
使用這個(gè)pdo>$stmt對(duì)象進(jìn)行查詢(xún)后,會(huì)被結(jié)果集覆蓋,類(lèi)型是一個(gè)二維數(shù)組。

sql代碼

       
方法三:html輸出與防止xss注入
特殊字符輸出
比如' " < >有著特殊的意義,如果直接寫(xiě)到html中輸出,會(huì)引起dom格式的錯(cuò)亂,那么就需要用到特殊的輸出方法。
 
 
最后,希望可以幫到大家。
 
     
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.sdlwjx666.com/news/4947.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
象州县| 聊城市| 海安县| 台中市| 紫云| 根河市| 蚌埠市| 哈尔滨市| 佳木斯市| 延寿县| 肇源县| 屏东县| 黔江区| 济源市| 南通市| 海丰县| 资溪县| 宁阳县| 双柏县| 沅陵县| 白山市| 于田县| 沈丘县| 临江市| 贡嘎县| 舟山市| 兴业县| 天长市| 保山市| 普洱| 宿迁市| 凯里市| 台安县| 衡阳市| 太仓市| 常山县| 信丰县| 延津县| 万州区| 赫章县| 乡城县|