免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PHP開發(fā)web應(yīng)用安全總結(jié)
  • XSS跨站腳本

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

危害:

  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標簽  
  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,通常縮寫為CSRF或者XSRF,是一種對網(wǎng)站的惡意利用。XSS利用站點內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防范的資源也相當稀少)和難以防范,所以被認為比XSS更具危險性。

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

例子:

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

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

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

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

解決方法:

1. http://a.com/addfriend.php?id=123 使用POST方法會相對安全一點。

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

 

  • 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表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務(wù)器執(zhí)行惡意的SQL命令。

危害:

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

2. 繞過認證。

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

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

例子:

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

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

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

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

解決方法:

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

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ù),都將導致XML注入漏洞。攻擊者可以修改XML數(shù)據(jù)格式,增加新的XML節(jié)點,對數(shù)據(jù)處理流程產(chǎn)生影響。

危害:

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

2. 破壞原來的XML結(jié)構(gòu),影響業(yè)務(wù)流程,甚至產(chǎ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@a.com</email>    
  5. </USER>   

惡意代碼:

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

意外的XML文檔:

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

解決方法:

1. 對php處理XML文檔的時候,進行標簽過濾

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

 

  • url跳轉(zhuǎn)漏洞

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

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

例子:

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

解決方法:

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

 

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

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

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

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

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

解決方法:

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

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

 

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

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

解決:

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

2. 對命令語句進行嚴格過濾

 

  • 文件上傳漏洞

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

情況:

1. 未限制擴展名

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

3. 病毒文件

解決方法:

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

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

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,導致惡意攻擊者可以通過變換數(shù)據(jù)ID,或變換所屬人id,修改不屬于自己的數(shù)據(jù)。

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

存在情況:

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

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

危害:

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

解決方案:

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

2. 在開發(fā)中嚴格按照權(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進行過期。

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

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
XSS(跨站腳本攻擊)詳解
WEB常見漏洞之CSRF(基礎(chǔ)原理篇)
網(wǎng)絡(luò)安全中什么是文件上傳漏洞?
關(guān)于PHP xss 和 SQL 注入的問題
滲透測試常規(guī)思路分析
如何利用網(wǎng)絡(luò)取證之流量分析的方式,還原惡意攻擊入侵的全過程?
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服