国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php中防xss攻擊和sql注入詳解

2024-05-04 21:57:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文章簡(jiǎn)單的講述了關(guān)于在php中防xss攻擊和sql注入詳解,有需了解的朋友可以參考一下下.

XSS攻擊實(shí)例代碼如下:

  1. 任意執(zhí)行代碼  
  2. 文件包含以及CSRF.  

關(guān)于SQL攻擊有很多文章還有各種防注入腳本,但是都不能解決SQL注入的根本問(wèn)題 

實(shí)例代碼如下:

  1. <?php  
  2. mysql_connect("localhost","root","123456")or die("數(shù)據(jù)庫(kù)連接失敗!");  
  3. mysql_select_db("test1");  
  4. $user=$_post['uid'];  
  5. $pwd=$_POST['pass'];  
  6. if(mysql_query("SELECT * from where  
  7. admin  
  8. = `username`='$user' or `password`='$pwd'"){  
  9. echo "用戶(hù)成功登陸..";  
  10. } eles {  
  11. echo "用戶(hù)名或密碼出錯(cuò)";  
  12. }  
  13. ?> 

很簡(jiǎn)單的一段代碼,功能是用于檢測(cè)用戶(hù)名或密碼是否正確,可是在一些惡意攻擊者中提交一些敏感代碼.后果可想而知.. post判斷注入的方式有2種. 

1.在form表單的文本框輸入 "or‘1'=1"或者"and 1=1" 

在查詢(xún)數(shù)據(jù)庫(kù)的語(yǔ)句就應(yīng)該是: 

SELECT admin from where login = `user`=''or‘1'=1' or `pass`=‘xxxx' 

當(dāng)然也不會(huì)出現(xiàn)什么錯(cuò)誤,因?yàn)閛r在sql的語(yǔ)句中代表和,或的意思.當(dāng)然也會(huì)提示錯(cuò)誤. 

當(dāng)時(shí)我們已經(jīng)發(fā)現(xiàn)了可以執(zhí)行SQL語(yǔ)句之后就可以查詢(xún)當(dāng)前表的所有信息.例如:正確的管理員賬戶(hù)和密碼進(jìn)行登錄入侵.. 

修復(fù)方式1: 

使用javascript腳本過(guò)濾特殊字符(不推薦,指標(biāo)不治本) 

如果攻擊者禁用了javascript還是可以進(jìn)行SQL注入攻擊.. 

修復(fù)方式2: 

使用mysql的自帶函數(shù)進(jìn)行過(guò)濾. 

實(shí)例代碼如下:

  1. <?php  
  2. // 省略連接數(shù)據(jù)庫(kù)等操作..  
  3. $user=mysql_real_escape_string($_POST['user']);  
  4. mysql_query("select * from admin whrer `username`='$user'");  
  5. ?> 

既然前面說(shuō)道了xss攻擊,我們?cè)賮?lái)說(shuō)說(shuō)XSS攻擊以及防范吧.. 

提交表單實(shí)例代碼如下:

  1. <form method="post" action="">  
  2. <intup tyep="text" name="test">  
  3. <intup tyep="submit" name="sub" value="提交">  
  4. </form> 

接收文件實(shí)例代碼如下:

  1. if(emptyempty($_POST['sub'])){  
  2. echo $_POST['test'];  

很簡(jiǎn)單的一段代碼,在這里只是模擬了下使用場(chǎng)景.. 

加入攻擊者提交實(shí)例代碼如下:

  1. <script>alert(document.cookie);</script>  

在返回的頁(yè)面就應(yīng)該顯示當(dāng)前頁(yè)面的cookie信息. 

我們可以運(yùn)用到某些留言板上(提前是沒(méi)過(guò)濾的),然后當(dāng)管理員審核改條信息時(shí)盜取COOKIE信息,并發(fā)送到攻擊者的空間或者郵箱..攻擊者可以使用cookie修改器進(jìn)行登陸入侵了.. 

當(dāng)然解決方案也有很多..下面就介紹一個(gè)最常用的方式吧. 

修復(fù)方案1:使用javascript進(jìn)行轉(zhuǎn)義 

修復(fù)方案2:使用php內(nèi)置函數(shù)進(jìn)行轉(zhuǎn)義 

實(shí)例代碼如下:

  1. [code]  
  2. if(emptyempty($_POST['sub'])){  
  3. $str=$_POST['test'];  
  4. htmlentities($srt);  
  5. echo $srt;  
  6. }  
  7. [html] 

好了,關(guān)于SQL注入攻擊和XSS攻擊的案例與修復(fù)方法就講的差不多了.

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 台南市| 古丈县| 沈丘县| 黄山市| 海林市| 上思县| 米泉市| 珠海市| 凌海市| 美姑县| 阿克苏市| 冀州市| 浦东新区| 揭阳市| 五莲县| 新乡县| 精河县| 沙洋县| 赞皇县| 乌恰县| 许昌市| 虹口区| 桂林市| 饶河县| 洛阳市| 铜陵市| 荃湾区| 儋州市| 阿合奇县| 醴陵市| 上林县| 吴堡县| 辉南县| 连城县| 海城市| 册亨县| 罗甸县| 望城县| 鄂尔多斯市| 岐山县| 马公市|