综合干狼人综合首页,日本а中文在线天堂,中国av一区,日韩va亚洲va欧洲va国产

12
2018/05

PHP防止SQL注入和XSS攻擊

發(fā)布時(shí)間:2018-05-12 14:58:50
發(fā)布者:pengyifeng
瀏覽量:
0

PHP防范SQL注入是一個(gè)非常重要的安全手段。一個(gè)優(yōu)秀的PHP程序員除了要能順利的編寫代碼,還需要具備使程序處于安全環(huán)境下的能力。
說(shuō)到網(wǎng)站安全,就不得不提到SQL注入(SQL Injection),如果你用過(guò)ASP,那么對(duì)SQL注入一定有比較深的理解。PHP的安全性相對(duì)較高,這是因?yàn)镸YSQL4以下的版本不支持子語(yǔ)句,而且當(dāng)php.ini里的 magic_quotes_gpc 為On 時(shí),提交的變量中所有的 ‘ (單引號(hào)), ” (雙引號(hào)), \ (反斜線) and 空字符會(huì)自動(dòng)轉(zhuǎn)為含有反斜線的轉(zhuǎn)義字符,給SQL注入帶來(lái)不少的麻煩。請(qǐng)看清楚:“麻煩”而已,這并不意味著PHP防范SQL注入。書中就講到了利用改變注入語(yǔ)句的編碼來(lái)繞過(guò)轉(zhuǎn)義的方法,比如將SQL語(yǔ)句轉(zhuǎn)成ASCII編碼(類似:char(100,58,92,108,111,99,97,108,104,111,115,116…)這樣的格式),或者轉(zhuǎn)成16進(jìn)制編碼,甚至還有其他形式的編碼,這樣以來(lái),轉(zhuǎn)義過(guò)濾便被繞過(guò)去了。

那么,怎樣防范SQL注入呢? 
a. 打開(kāi)magic_quotes_gpc或使用addslashes()函數(shù)
在新版本的PHP中,就算magic_quotes_gpc打開(kāi)了,再使用addslashes()函數(shù),也不會(huì)有沖突,但是為了更好的實(shí)現(xiàn)版本兼容,建議在使用轉(zhuǎn)移函數(shù)前先檢測(cè)magic_quotes_gpc狀態(tài),或者直接關(guān)掉,代碼如下:
// PHP 防范SQL注入的代碼 //
// 去除轉(zhuǎn)義字符   
function stripslashes_array($array) {   
  if (is_array($array)) {   
    foreach ($array as $k => $v) {   
      $array[$k] = stripslashes_array($v);   
    }   
  } else if (is_string($array)) {   
    $array = stripslashes($array);   
  }   
  return $array;   
}   
@set_magic_quotes_runtime(0);   
// 判斷 magic_quotes_gpc 狀態(tài)   
if (@get_magic_quotes_gpc()) {   
  $_GET = stripslashes_array($_GET);   
  $_POST = stripslashes_array($_POST);   
  $_COOKIE = stripslashes_array($_COOKIE);   

// PHP 防范SQL注入的代碼 //
去除magic_quotes_gpc的轉(zhuǎn)義之后再使用addslashes函數(shù),代碼如下:

$keywords = addslashes($keywords);

$keywords = str_replace(“_”,”\_”,$keywords);//轉(zhuǎn)義掉”_”

$keywords = str_replace(“%”,”\%”,$keywords);//轉(zhuǎn)義掉”%”

后兩個(gè)str_replace替換轉(zhuǎn)義目的是防止黑客轉(zhuǎn)換SQL編碼進(jìn)行攻擊。 
——————————————————
b. 強(qiáng)制字符格式(類型)
在很多時(shí)候我們要用到類似xxx.php?id=xxx這樣的URL,一般來(lái)說(shuō)$id都是整型變量,為了防范攻擊者把$id篡改成攻擊語(yǔ)句,我們要盡量強(qiáng)制變量,代碼如下:
// PHP防范SQL注入的代碼 //

$id=intval($_GET[‘id’]);

當(dāng)然,還有其他的變量類型,如果有必要的話盡量強(qiáng)制一下格式。 
——————————————————
c. SQL語(yǔ)句中包含變量加引號(hào)
這一點(diǎn)兒很簡(jiǎn)單,但也容易養(yǎng)成習(xí)慣,先來(lái)看看這兩條SQL語(yǔ)句:

SELECT * FROM article WHERE articleid=’$id’ 
SELECT * FROM article WHERE articleid=$id

兩種寫法在各種程序中都很普遍,但安全性是不同的,第一句由于把變量$id放在一對(duì)單引號(hào)中,這樣使得我們所提交的變量都變成了字符串,即使包含了正確的SQL語(yǔ)句,也不會(huì)正常執(zhí)行。
而第二句不同,由于沒(méi)有把變量放進(jìn)單引號(hào)中,那我們所提交的一切,只要包含空格,那空格后的變量都會(huì)作為SQL語(yǔ)句執(zhí)行。因此,我們要養(yǎng)成給SQL語(yǔ)句中變量加引號(hào)的習(xí)慣。 
——————————————————
d. URL偽靜態(tài)化
URL偽靜態(tài)化也就是URL重寫技術(shù),像Discuz!一樣,將所有的URL都rewrite成類似xxx-xxx-x.html格式,既有利于SEO,又達(dá)到了一定的安全性,也不失為一個(gè)好辦法。但要想實(shí)現(xiàn)PHP防范SQL注入,前提是你得有一定的“正則”基礎(chǔ)。
——————————————————
此外,PHP所有打印的語(yǔ)句如echo,print等,在打印前都要使用htmlentities() 進(jìn)行過(guò)濾,這樣可以防止Xss。
注意中文要寫出htmlentities($name, ENT_NOQUOTES, GB2312)

mysql_real_escape_string() 。

所以SQL語(yǔ)句如果有類似這樣的寫法:“select * from cdr where src =”.$userId,

都要改成$userId=mysql_real_escape_string($userId) 。
以上,就是PHP防止SQL注入和XSS攻擊的方法及源碼。

關(guān)鍵詞:
返回列表
综合干狼人综合首页,日本а中文在线天堂,中国av一区,日韩va亚洲va欧洲va国产
欧美日韩精品久久久| 久久精品国产亚洲一区二区三区| 中文字幕一区不卡| 亚洲精品ww久久久久久p站| 青青草国产成人av片免费| 日韩国产欧美三级| 久久99久久精品欧美| 91一区二区三区在线播放| 欧美精品123区| 成人精品视频一区二区三区| 久久99国产精品久久99果冻传媒| 看片网站欧美日韩| 99re8在线精品视频免费播放| 韩国一区二区视频| 国产专区欧美精品| 亚洲欧洲日韩在线| 欧美亚洲另类激情小说| 欧美在线你懂得| 在线观看一区二区视频| 九九**精品视频免费播放| 国产成人在线免费| 大美女一区二区三区| 精品亚洲成a人在线观看| 99国产精品视频免费观看| 欧美国产在线观看| 日本一区二区成人| 成人久久18免费网站麻豆| 欧美日韩一区二区三区不卡| 免费在线观看一区| 无码av免费一区二区三区试看| 91日韩一区二区三区| 国产视频一区在线观看| 欧美成人欧美edvon| 国产乱码精品一区二区三区五月婷| 91精品国产91综合久久蜜臀| 国产精品久久久久久一区二区三区| 欧美人体做爰大胆视频| 欧美一区二区三区的| 精品污污网站免费看| 亚洲一区二区四区蜜桃| 国产精品乱码人人做人人爱| 日韩中文字幕区一区有砖一区| 亚洲bt欧美bt精品777| 视频一区欧美精品| 久久综合九色综合欧美亚洲| 国产亚洲一区二区三区| 色屁屁一区二区| 色欧美88888久久久久久影院| 日韩视频免费观看高清完整版在线观看| 色视频欧美一区二区三区| 日韩精品视频网| 天天综合天天综合色| 欧美一区二区久久久| 在线精品视频免费观看| 国产精品18久久久久久久久| 国v精品久久久网| 亚洲精品国产a久久久久久| 亚洲精品国产一区二区三区四区在线| 欧美极品少妇xxxxⅹ高跟鞋| 国产福利一区二区三区在线视频| 久久精品一二三| 亚洲国产精品综合小说图片区| 国产日本欧美一区二区| av中文字幕不卡| 91性感美女视频| 99久久99久久精品免费看蜜桃| 麻豆中文一区二区| 色综合视频一区二区三区高清| 99热在这里有精品免费| 91精品国产入口| www.久久久久久久久| 国产美女主播视频一区| 在线视频中文字幕一区二区| 欧美视频在线播放| 国产精品免费久久久久| 国内精品国产三级国产a久久| 亚洲成av人**亚洲成av**| 欧美色窝79yyyycom| 中文字幕一区二区三区在线不卡| 欧美日韩国产免费一区二区| 一区二区视频免费在线观看| 国产精品亚洲专一区二区三区| 色婷婷久久久综合中文字幕| 九九国产精品视频| 粉嫩aⅴ一区二区三区四区五区| 成人免费看视频| 最新欧美精品一区二区三区| 精品国产一区二区国模嫣然| 欧美日韩国产123区| 亚洲欧美另类小说| 最新欧美精品一区二区三区| 亚洲成人av在线电影| 91福利国产成人精品照片| 一区二区三区在线视频观看| 偷偷要91色婷婷| 亚洲美女在线国产| 国产成人av自拍| 国产成人午夜片在线观看高清观看| 国产精品视频线看| 激情偷乱视频一区二区三区| 美日韩一级片在线观看| 日韩不卡一区二区三区| 久久久蜜臀国产一区二区| 99久久99精品久久久久久| 国产不卡视频一区二区三区| 日韩高清不卡在线| 日韩欧美二区三区| 欧美午夜片在线观看| 精品视频123区在线观看| 欧美午夜宅男影院| 欧美日韩国产另类一区| 国产精品亚洲专一区二区三区| 激情亚洲综合在线| 老汉av免费一区二区三区| 欧美成人精品高清在线播放| 欧美视频日韩视频| 99精品一区二区三区| 菠萝蜜视频在线观看一区| 天堂影院一区二区| 免费成人美女在线观看| 日韩国产在线一| 国产精品网曝门| 丁香亚洲综合激情啪啪综合| 国产日韩欧美高清| 国产又黄又大久久| 国产精品成人一区二区三区夜夜夜| 亚洲国产成人va在线观看天堂| 国产精品人成在线观看免费| 国产成人精品亚洲777人妖| 综合欧美一区二区三区| 欧美v日韩v国产v| 国产大陆亚洲精品国产| 国产成人av电影在线观看| 水野朝阳av一区二区三区| 日韩三级视频在线观看| 日韩欧美在线网站| 国内欧美视频一区二区| 欧美系列一区二区| 欧美人伦禁忌dvd放荡欲情| 欧美一区二区国产| 亚洲欧美一区二区在线观看| 亚洲国产激情av| 中文字幕一区在线| 精品欧美乱码久久久久久| 国产综合色精品一区二区三区| 日韩一区二区影院| 717成人午夜免费福利电影| 国产精品三级久久久久三级| 成人手机在线视频| 欧美专区日韩专区| 一区二区三区不卡视频在线观看| 国产成人在线影院| 中文字幕精品在线不卡| 麻豆精品一区二区av白丝在线| 青青青伊人色综合久久| 日韩美女一区二区三区四区| 亚洲午夜久久久久久久久电影网| 中文字幕永久在线不卡| 国产午夜精品美女毛片视频| 激情文学综合丁香| 欧美日韩国产一级二级| 欧美丰满高潮xxxx喷水动漫| 亚洲自拍偷拍欧美| 欧美日韩www| 国产精品久99| 成人在线一区二区三区| 一区二区高清在线| av影院午夜一区| 极品美女销魂一区二区三区| 美国毛片一区二区三区| 色八戒一区二区三区| 精品国产伦一区二区三区免费| 56国语精品自产拍在线观看| 久久av老司机精品网站导航| 欧美成人免费网站| bt欧美亚洲午夜电影天堂| 国产无遮挡一区二区三区毛片日本| av一区二区三区在线| 亚洲高清不卡在线观看| 精品国产不卡一区二区三区| 香蕉加勒比综合久久| 日日摸夜夜添夜夜添国产精品| 色呦呦一区二区三区| 国内外精品视频| 337p日本欧洲亚洲大胆色噜噜| 亚洲制服欧美中文字幕中文字幕| 欧美一级片免费看| av一二三不卡影片| 国产99久久久久| 日韩午夜激情视频| 亚洲乱码国产乱码精品精小说| 丁香婷婷综合激情五月色| 欧美日韩一区三区四区| 国产一区二区伦理片| 欧美成人官网二区| 天天综合日日夜夜精品| 欧美日韩1234| 亚洲成在人线免费| 五月天婷婷综合| 精品国产乱码91久久久久久网站|