乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP開發(fā)web應(yīng)用安全總結(jié)

       londonKu 2012-06-23
      • XSS跨站腳本

      概念:惡意攻擊者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。

      危害:

      1. 盜取用戶COOKIE信息。
      2. 跳轉(zhuǎn)到釣魚網(wǎng)站。
      3. 操作受害者的瀏覽器,查看受害者網(wǎng)頁瀏覽信息等。
      4. 蠕蟲攻擊。

      描述:反射型跨站。GET或POST內(nèi)容未過濾,可以提交JS以及HTML等惡意代碼。

      代碼:

      1. <?php echo $_GET['msg']; ?>  
      2. //正常URL  
      3. user.php?msg=henhao  
      4. //帶JS的URL  
      5. user.php?msg=<script>alert(1)</script>  
      6. //惡意跳轉(zhuǎn)URL  
      7. user.php?msg=<script>window.history.back(-1);</script>  


      解決方法:

      輸出過濾,php端輸出到view的模板頁面上的數(shù)據(jù)都需要經(jīng)過過濾:

      1. //輸出過濾HTML JS標(biāo)簽  
      2. $var = str_replace(array('<iframe','<meta','<script'), ''$var); $var = str_replace(array('..',')','<','='), array('..',')','<','='), $var);    
      3. $var = addslashes($var);   

       

      • CSRF跨站攻擊

      概念:CSRF跨站請求偽造,也被稱成為“one click attack”或者session riding,通??s寫為CSRF或者XSRF,是一種對網(wǎng)站的惡意利用。XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險性。

      危害:強(qiáng)迫受害者的瀏覽器向一個易受攻擊的Web應(yīng)用程序發(fā)送請求,最后達(dá)到攻擊者所需要的操作行為。

      例子:

      1. <img src=“http:///addfriend.php?id=123/>   

      1. 上面是一個圖片的html標(biāo)簽,但是src中是一個添加id為123好友的新增好友鏈接。

      2. 惡意用戶可以將這段代碼植入其它網(wǎng)站網(wǎng)頁上面,甚至可以img設(shè)置為0,0,讓用戶不知不覺中點(diǎn)擊這個鏈接,達(dá)到用戶并不像加這個人好友,但是添加的目的。

      3. 當(dāng)很多人都無意加了id為123這個人為好友的時候,id為123的惡意用戶就有權(quán)限來查看這些人的信息,甚至可以發(fā)送很多惡意的信息,達(dá)到惡意用戶的目的。

      解決方法:

      1. http:///addfriend.php?id=123 使用POST方法會相對安全一點(diǎn)。

      2. 采用類似隨即碼或者令牌的形式,讓用戶操作唯一性。 (每次用戶登錄網(wǎng)站隨機(jī)生成一個token,存放在cookie中,用戶的所有操作中都需要經(jīng)過token驗(yàn)證)

       

      • flash安全問題

      例子:

      1. http://images.sohu.com/bill/s2010/liulin/nokia/1602600902.swf?clickthru=javascript:alert(1)  


      解決方法:

      在網(wǎng)站根目錄中,添加crossdomain.xml文件,這個文件主要是控制flash的域訪問。

      淘寶的:http://www.taobao.com/crossdomain.xml

      1. <?xml version="1.0" ?>    
      2. <cross-domain-policy>    
      3. <allow-access-from domain="*.taobao.com" />    
      4. <allow-access-from domain="*.taobao.net" />    
      5. <allow-access-from domain="*.taobaocdn.com" />    
      6. <allow-access-from domain="*.tbcdn.cn" />    
      7. <allow-access-from domain="*.allyes.com" />    
      8. </cross-domain-policy>   
      • sql注入安全問題

      概念:所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。

      危害:

      1. 查詢數(shù)據(jù)庫中敏感信息。

      2. 繞過認(rèn)證。

      3. 添加、刪除、修改服務(wù)器數(shù)據(jù)。

      4. 拒絕服務(wù)。?id=(BENCHMARK(100000000, MD5(RAND()));

      例子:

      1. $sql = "SELECT name FROM users WHERE id = '". $_GET['id'] . "'";  

      當(dāng)ID值為:1’ or 1=’1  SQL語句(已測試可以注入):

      1. SELECT name FROM users WHERE id = ‘1’ or 1=’1 ‘  

      說明:1=1的時候,條件語句WHEREOR之前的不起作用。 ‘的作用是組裝SQL語句。

      解決方法:

      SQL組裝的時候,對外部變量以及所有變量都進(jìn)行過濾:

      PHPWIND中,可以用sqlEscape、sqlImplode、sqlSingle、sqlMulti等函數(shù)過濾組裝。過濾主要是一些’單引號這些可以破壞SQL組裝的數(shù)據(jù)。

      1. /** 
      2.  * SQL組裝-私有SQL過濾 
      3.  * @param  string $val 過濾的值 
      4.  * @param  int    $iskey 0-過濾value值,1-過濾字段 
      5.  * @return string 
      6.  */  
      7. private function build_escape_single($val$iskey = 0) {  
      8.     if ($iskey === 0) {  
      9.         if (is_numeric($val)) {  
      10.             return " '" . $val . "' ";  
      11.         } else {  
      12.             return " '" . addslashes(stripslashes($val)) . "' ";  
      13.         }  
      14.     } else {  
      15.         $val = str_replace(array('`'' '), ''$val);  
      16.         return ' `'.addslashes(stripslashes($val)).'` ';  
      17.     }  
      18. }  

       

      •  XML注入安全問題

      概念:和SQL注入原理一樣,XML是存儲數(shù)據(jù)的地方,如果在查詢或修改時,如果沒有做轉(zhuǎn)義,直接輸入或輸出數(shù)據(jù),都將導(dǎo)致XML注入漏洞。攻擊者可以修改XML數(shù)據(jù)格式,增加新的XML節(jié)點(diǎn),對數(shù)據(jù)處理流程產(chǎn)生影響。

      危害:

      1. 攻擊者可以新增XML節(jié)點(diǎn)

      2. 破壞原來的XML結(jié)構(gòu),影響業(yè)務(wù)流程,甚至產(chǎn)生嚴(yán)重的錯誤。

      例子:

      1. $xml = "<USER role=guest><name>“ . $_GET[‘name’] . "</name><email>“ . $_GET[‘email’] . "</email></USER>";  

      需要得到的XML結(jié)構(gòu):

      1. <?xml version="1.0" encoding="UTF-8"?>     
      2. <USER role=guest>    
      3. <name>user1</name>    
      4. <email>user1@</email>    
      5. </USER>   

      惡意代碼:

      1. user1@</email></USER><USER role=admin><name>test</name><email>user2@   

      意外的XML文檔:

      1. <?xml version="1.0" encoding="UTF-8"?>    
      2. <USER role=guest>    
      3. <name>user1</name>    
      4. <email>user1@</email>    
      5. </USER>    
      6. <USER role=admin>    
      7. <name>test</name>    
      8. <email>user2@</email>    
      9. </USER>   

      解決方法:

      1. 對php處理XML文檔的時候,進(jìn)行標(biāo)簽過濾

      2. 盡量減少直接被外部訪問到xml文檔,可以采用文件名用散列方法等。

       

      • url跳轉(zhuǎn)漏洞

      概念:Web應(yīng)用程序接收到用戶提交的URL參數(shù)后,沒有對參數(shù)做”可信任URL”的驗(yàn)證,就向用戶瀏覽器返回跳轉(zhuǎn)到該URL的指令。

      危害:釣魚網(wǎng)站

      例子:

      http://m./log.php?c=web&u=http://www.163.com

      解決方法:

      對跳轉(zhuǎn)的php函數(shù)進(jìn)行進(jìn)一步優(yōu)化,使頁面跳轉(zhuǎn)可以在可信任的范圍內(nèi)。 例如可以有跳轉(zhuǎn)域名白名單方法,這個訪問各大公司使用比較多

       

      • 文件系統(tǒng)跨越漏洞

      概念:對文件目錄參數(shù)沒有進(jìn)行過濾,導(dǎo)致惡意用戶可以通過在參數(shù)中輸入一些執(zhí)行命令,或者跨越訪問的行為,來超出用戶的訪問權(quán)限。

      例子:通過一個或多個../跨越目錄限制

      1. $fp = fopen("image/{$_GET['filename']}"'r');  

      Getfile?filename=../../../../etc/passwd

      解決方法:

      1. 對文本操作的時候一定要謹(jǐn)慎,不可信任

      2. 嚴(yán)格使用phpwind中安全類庫 escapePath函數(shù)

       

      • 系統(tǒng)命令漏洞

      概念:用戶提交的參數(shù)用于執(zhí)行系統(tǒng)命令的參數(shù)。

      解決:

      1. 謹(jǐn)慎使用系統(tǒng)命令,對使用系統(tǒng)命令的地方需要進(jìn)行安全評審

      2. 對命令語句進(jìn)行嚴(yán)格過濾

       

      • 文件上傳漏洞

      概念:Web應(yīng)用程序在處理用戶上傳的文件時,沒有判斷文件的擴(kuò)展名是否在允許的范圍內(nèi),或者沒檢測文件內(nèi)容的合法性,就把文件保存在服務(wù)器上,甚至上傳腳本木馬到web服務(wù)器上,直接控制web服務(wù)器。

      情況:

      1. 未限制擴(kuò)展名

      2. 未檢查文件內(nèi)容

      3. 病毒文件

      解決方法:

      1. 使用安全的,可信任的上傳組件。

      2. 檢查文件擴(kuò)展名,保證文件的類型正確。

      3. 檢查文件內(nèi)容,保證用戶不偽造文件類型。

       

      • 任意文件下載漏洞

      解決方法:

      1. Apache虛擬目錄指向

      2. Java/PHP讀取文件

       

      • 權(quán)限控制漏洞

      概念:屬于業(yè)務(wù)邏輯上的安全管理。

      訪問控制:

      1. 水平訪問:Web應(yīng)用程序接收到用戶請求,修改某條數(shù)據(jù)時,沒有判斷數(shù)據(jù)的所屬人,或判斷數(shù)據(jù)所屬人時,從用戶提交的request參數(shù)(用戶可控數(shù)據(jù))中,獲取了數(shù)據(jù)所屬人id,導(dǎo)致惡意攻擊者可以通過變換數(shù)據(jù)ID,或變換所屬人id,修改不屬于自己的數(shù)據(jù)。

      2. 垂直訪問:由于web應(yīng)用程序沒有做權(quán)限控制,或僅僅在菜單上做了權(quán)限控制,導(dǎo)致的惡意用戶只要猜測其他管理頁面的URL,就可以訪問或控制其他角色擁有的數(shù)據(jù)或頁面,達(dá)到權(quán)限提升目的。

      存在情況:

      1. URL級別的。(例如論壇需要操作評分的時候,有一個提交的URL地址,該地址提交過去,如果不做權(quán)限判斷,那么惡意用戶就可以隨意的拿這個URL地址來進(jìn)行惡意行為)

      2. 菜單級別。(會員中心或者后臺管理中心,會有菜單,管理員可以看到多個功能,普通管理員只能看到一部分功能。但是如果你對管理員操作的功能區(qū)不做權(quán)限判斷,那么普通管理員只要猜測或者獲取管理區(qū)的URL,就可以進(jìn)行管理員操作了)

      危害:

      1. 屬于業(yè)務(wù)邏輯的漏洞,這些危害性是巨大的,可以讓普通用戶就可能獲取管理員的權(quán)限,對網(wǎng)站進(jìn)行惡意破壞或者做非法行為。

      解決方案:

      1. 項(xiàng)目先期,做一份詳細(xì)的權(quán)限規(guī)劃文檔。

      2. 在開發(fā)中嚴(yán)格按照權(quán)限文檔的要求去做權(quán)限。

      3. 后期測試需要覆蓋權(quán)限這一塊功能區(qū)。

      4. 程序員需要經(jīng)常注意這些方面的要求。

       

      • cookie安全設(shè)置

      解決:

      cookie httponly flag : 在用到用戶名登陸密碼之類的安全性比較高的cookie的時候,可以在cookie中設(shè)置httponly屬性,該屬性只允許php等訪問cookie,而不允許js訪問。

      cookie secure flag : 在涉及到https這樣的情況,需要對cookie加密傳輸,那么可以設(shè)置這個屬性

       

      • session安全

      1. SESSION是保存在服務(wù)器端的,具有比COOKIE一定的安全性。

      2. 使用COOKIE的時候,如果長時間沒有動作,可以設(shè)置一個時間值,來對COOKIE進(jìn)行過期。

      3. 盡量讓用戶每次的cookie值都是不同的,這樣可以保證cookie被盜取也不能長期使用的問題。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多