1. WEB伺服器的安全
盜用賬號、緩沖區溢出以及執行任意命令是Web伺服器比較常見的安全漏洞。黑客攻擊、蠕蟲病毒以及木馬是網際網路比較常見的安全漏洞。口令攻擊、拒絕服務攻擊以及IP欺騙是黑客攻擊比較常見的類型。隨著網路技術的不斷發展,Web伺服器面臨著許多安全威脅,直接影響到Web伺服器的安全。因此,加強Web伺服器的安全防護是一項迫切需要的解決的時代課題。筆者結合多年的工作實踐,認為可從以下3個方面入手來加強Web伺服器的安全防護。第一,加強Web伺服器的安全設置。以Linux為操作平台的Web伺服器的安全設置策略,能夠有效降低伺服器的安全隱患,以確保Web伺服器的安全性,主要包括:登錄有戶名與密碼的安全設置、系統口令的安全設置、BIOS的安全設置、使用SSL通信協議、命令存儲的修改設置、隱藏系統信息、啟用日誌記錄功能以及設置Web伺服器有關目錄的許可權等[3]。第二,加強互聯網的安全防範。Web伺服器需要對外提供服務,它既有域名又有公網的網址,顯然存在一些安全隱患。所以,可給予Web伺服器分配私有的地址,並且運用防火牆來做NAT可將其進行隱藏;同時因為一些攻擊來源於內網的攻擊,比如把內網計算機和Web伺服器存放在相同的區域網之內,則在一定程度上會增加很多安全隱患,所以必須把它劃分為不同的虛擬區域網,運用防火牆的地址轉換來提供相互間的訪問,這樣就大大提高了Web伺服器的安全性和可靠性;把Web伺服器連接至防火牆的DMZ埠,將不適宜對外公布的重要信息的伺服器放於內部網路,進而在提供對外的服務的同時,可以最大限度地保護好內部網路[4]。第三,網路管理員要不斷加強網路日常安全的維護與管理。要對管理員用戶名與密碼定期修改;要對Web伺服器系統的新增用戶情況進行定時核對,並且需要認真仔細了解網路用戶的各種功能;要及時給予更新Web伺服器系統的殺毒軟體以及病毒庫,必要時可針對比較特殊的病毒給予安裝專門殺毒的程序,同時要定期查殺Web伺服器的系統病毒,定期查看CPU的正常工作使用狀態、後台工作進程以及應用程序,假若發現異常情況需要及時給予妥當處理[5];因為很多木馬與病毒均是運用系統漏洞來進行攻擊的,所以需要不斷自動更新Web伺服器系統,以及定期掃描Web伺服器系統的漏洞。
Web伺服器已經成為了病毒、木馬的重災區。不但企業的門戶網站被篡改、資料被竊取,而且還成為了病毒與木馬的傳播者。有些Web管理員採取了一些措施,雖然可以保證門戶網站的主頁不被篡改,但是卻很難避免自己的網站被當作肉雞,來傳播病毒、惡意插件、木馬等等。這很大一部分原因是管理員在Web安全防護上太被動。他們只是被動的防禦。為了徹底提高Web伺服器的安全,Web安全要主動出擊。 已經檢查過網線。也試過了ping伺服器,依舊無法訪問伺服器。好消息是,已經可以將問題定位到物理伺服器或操作系統本身了。換句話說,已經可以開始集中經理對現存的問題進行排查。
接下來,才去從底層到高層的方式來逐層檢查問題,首先檢查網路介面和本地網路配置是否正常。DHCP是否啟動?Web伺服器是否指向正確的DNS伺服器?如果是這樣,可以根據使用的操作系統平台,檢查Web服務是否正常開啟。在Windows環境,需要檢查伺服器是否具有Web服務的角色。在Linux環境下,檢查會更復雜,可以試試查找http相關的文件或服務來確保伺服器是否正在運行。 如果以上方法都不奏效,檢查日誌並嘗試查明在Web伺服器宕機時日誌中記錄的那些信息。將這些信息發給在故障處理和解決領域更有經驗的專業人士,可能會獲得更多的幫助。同樣的,如果已經確認網路連接不是問題,就可以使用Wireshark抓包工具對網路中傳輸的數據進行抓取分析,以此協助處理問題。
總而言之,伺服器宕機的原因多種多樣。斷電、配置錯誤、防火牆設置錯誤、甚至是來自互聯網的惡意流量,都可能引發源站宕機並讓系統管理員們抓狂。所有這些問題都足以讓企業決策者對冗餘解決方案的設計和實施加以重視,同樣的針對故障處理流程的設計和制定,還需要根據企業自身網路的實際情況為依據。
2. Web API介面鑒權方式
如果把API介面直接暴露在互聯網上是存在安全風險的,所以我們需要對API進行許可權劃分,對介面調用方做一個用戶鑒權,如果鑒權通過則允許此用戶進行API調用,反之則拒絕。根據不同的業務場景,介面鑒權方案也有很多種。
2、優點技術實現彎敏方便祥鬧畢。3、缺點弊端
存在安全風險:因為Cookie是存儲在客戶謹芹端的,客戶端可以隨意更改Cookie,存在偽造請求的風險
Token(令牌)是用來替代Session的新興鑒權方案,現在的Web API基本上離不開Token令牌。1、實現原理
2、優點
3、Token的實現形式 Token令牌技術是一種技術方案統稱,具體的實現方案是有所差別的,最常見的Token種類有以下幾種:
HTTP協議的認證機制主要有兩種:
3. web介面調用方式和性能比較
靜態調用和動態調用
靜態調用這種必須知道要調用介面的名稱,動態調用,這種更靈活,根據wsdl文檔,只需要知道方法名就行。
靜態方法和實例方法是一樣的,在類型第一次被使用時載入。調用的速度基本上沒有差別。 靜態方法不用創建實例就可調用,比較簡單從面向對象的角度上來說閉襲,在抉擇使用實例化方法毀態桐或靜態方法纖坦時,應該根據是否該方法和實例化對象具有邏輯上的相關性,如果是就應該使用實例化對象 反之使用靜態方法。
這只是從面向對象角度上來說的。 如果從線程安全、性能、兼容性上來看 也是選用實例化方法為宜。
4. 前端程序員必須知道的 Web 漏洞,快來看看
隨著互聯網的發展,早已經不是僅限於簡單的網頁或是社交,電商購物、銀行轉賬、企業管理等等。上次看到一個新聞,後台程序員離職後,利用職位之便,每天還不斷的給自己轉賬,轉了好多次才被發現,想想這多可怕。或者會竊取重要的商業信息,所以 Web 安全也是非常值得注意的。
什麼是 Web 安全?
黑客利用網路操作系統的漏洞和 Web 伺服器的 sql 注入漏洞等,得到 Web 伺服器的控制權,輕則篡改、刪除、添加數據,重則竊取重要的商業信息、轉賬等,更嚴重的就是在網頁中植入惡意代碼,使網站受到不可預期的侵害。
常見的攻擊可分為三類:XSS、CSRF、SQL注入。
Cross Site Scripting 跨站腳本攻擊,為了與 CSS 區分,所以簡寫為 XSS 。
惡意攻擊給 Web 頁面植入惡意的 Script 代碼,當用戶瀏覽該網頁的時候,嵌入 Web 裡面的 script 代碼會被執行,從而達到攻擊的效果。
講直白點,就是惡意攻擊者通過在輸入框處添加惡意 script 代碼,用戶瀏覽網頁的時候執行 script 代碼,從而達到惡意攻擊用戶的目的。
1.1、XSS 的危害
1.2、XSS 的攻擊類型
發出請求時,XSS代碼會出現在 url 中,作為輸入提交到伺服器端,伺服器再返回給瀏覽器,然後瀏覽器解析執行 XSS 代碼,這一過程像一次反射,所以稱之為反射型。
這種類型的攻擊,通常是把 XSS 攻擊代碼放入請求地址的 數據傳輸部分,如:
提交的 XSS 代碼會存儲在伺服器端,如資料庫、內存、文件系統內,下次請求目標頁面時不再提交 XSS 代碼。
文檔型的 XSS 攻擊不會經過伺服器,作為中間人的角色,在數據傳輸過程中劫持到網路數據包,然後修改裡面的 html 文檔。
1.3、XSS 的防禦措施
措施1:編碼。
對這些數據進行 html entity 編碼。客戶端和伺服器端都需要進行轉義編碼。
轉義後為:
放入上邊的代碼中,還是會自動解析為上邊的代碼,所以放到外邊。
措施2:過濾。
移除用戶上傳的 DOM 屬性,如上邊的 onerror。
移除用戶上傳的 style、script、iframe 節點。
措施3:利用 CSP
瀏覽器中的內容安全策略,就是決策瀏覽器載入哪些資源。
Cross site request forgery 跨站點請求偽造。
攻擊者誘導受害者進入第三方網站,向被攻擊網站發送跨站請求,利用被攻擊者在被攻擊網站已經獲取的注冊憑證,繞過後台的用戶驗證達到冒充用戶對攻擊網站進行的某種操作。
CSRF 攻擊特點:
2.1、CSRF 的危害
2.2、CSRF 的攻擊類型
使用非常簡單,只需要一個 http 請求。
比如頁面中的一個圖片添加鏈接,還有 iframe、script ,最容易完成 CSFR 攻擊,且不易被用戶發現,隱蔽性超強。
由於 get 介面是最常見的一種 CSRF 攻擊類型,所以很多重要的介面不適用 get 方式,使用 post 一定程度上可以防止 CSRF 攻擊。
這種類型的 SCRF 攻擊,通常使用的是一個自動提交的表單。簡單講就是偽造一個自動提交的表單,一旦訪問頁面時,表單就會自動提交。
如:
比起前兩個,這個類型的比較少見,鏈接類型的攻擊必須要用戶點擊鏈接,才能觸發。
通常在論壇中發布的圖片嵌入惡意的鏈接,或以廣告的形式誘導用戶點擊中招。所以我們在郵箱中看到亂七八糟的廣告,盡量別點擊,防止遇到三方攻擊。
偽造一種新型的攻擊方式,用戶誤以為是在網站正常登錄,實際上是使用賬戶和密碼登錄到了黑客網站,這樣黑客可以監聽到用戶的所有操作,甚至知道用戶的賬戶信息。
2.3、CSRF 的防禦措施
措施1:檢查 http 頭部的 referer 信息
referer 包含在請求頭內,表示請求介面的頁面來源。
服務端通過檢查 referer 信息,發現來源於外域時,就可以攔截請求,通過阻止不明外域的訪問,一定程度上可以減少攻擊。
措施2:使用一次性令牌
使用一次性令牌做身份識別,黑客是無法通過跨域拿到一次性令牌的,所以服務端可以通過判斷是否攜帶一次性令牌,就可以排除一部分的非法操作者。
措施3:使用驗證圖片
服務端生成一些文本和數字,在服務端保存這份信息,同時以圖片的形式在客戶端展現,讓用戶去合法填寫信息,當 CSRF 攻擊時,拿不到這個驗證碼的時候,無法向伺服器提供這個信息,導致匹配失敗,從而識別它是非法攻擊者。
這個應用非常常見,之前登錄的時候,需要填寫圖形驗證碼。
現在滑動圖片驗證也非常常見。
SQL 注入,一般發生在注冊、評論、添加等,只有有用戶輸入的地方,就有可能發生 SQL 注入。SQL 注入是一種常見的 Web 安全漏洞,攻擊者會利用這個漏洞,可以訪問或修改數據,利用潛在的資料庫漏洞進行攻擊。
所謂SQL注入,就是通過把SQL命令插入到Web 表單 提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到後台資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL語句。比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到 SQL注入式攻擊 .
3.1、SQL 注入危害
任意的賬號都可以登錄,可以進行任意的操作,粗暴點講,就是隨便來。
3.2、 SQL注入分類
當輸入的參數為整數時,則有可能存在數字型漏洞。
當輸入參數為字元串時,則可能存在字元型注入漏洞。數字型與字元型注入最大的區別在於:數字型不需要單引號閉合,而字元型一般需要使用單引號來閉合。
字元型注入最關鍵的是如何閉合 SQL 語句以及注釋多餘的代碼。
其實我覺得 SQL 注入只有兩種類型:數字型與字元型。很多人可能會說還有如:Cookie 注入、POST 注入、延時注入等。
的確如此,但這些類型的注入歸根結底也是數字型和字元型注入的不同展現形式或者注入的位置不同罷了。
以下是一些常見的注入叫法:
3.3、SQL注入的防範措施
凡是用戶輸入的地方,我們都應該防止黑客攻擊,永遠不要相信用戶的輸入。所以對應的防禦措施分別有:
前後端分離之後,前端每天都會接觸到很多介面。發送網路請求的時候,有些介面就會使用 get 方法。最常見的傳參方式就是,直接在 url 地址後面加參數。
直接採用這種方式傳輸數據,如果數據被劫持或抓包工具偷走之後,就會直接被人盜取走,特別危險。若是採用介面加密,如下:
上邊那個看不懂的一長串符號,正是經過加密的數據。
介面加密就是將介面請求調用中傳遞的參數進行加密,目的就是為了保證介面請求中傳遞參數和返回的結果的安全性,一般比較敏感數據,如身份證、電話號碼、賬號、密碼等需要進行加密。
常見的加密方式:
加密方式較多,可以根據自己具體的需要和項目語言選擇其中一種。
加密之後的數據更安全,那我們能不能將介面所有的數據都進行加密呢?加密是非常消耗資源的,如果有大批量的數據都進行加密時,返回數據需要的時間就更長,會直接影響用戶體驗。所以我們進行加密時,只需要對敏感的重要的信息進行加密。
好了我今天的文章就到此結束了,本篇文章沒有介紹到的 web 安全,歡迎評論區交流!
5. Web業務安全測試方法(1)—越權測試
來這家公司快四個月了,現在對這四個月的工作做一個總結。挖過越權漏洞、低價買服務漏洞、未鑒權的介面、CSRF漏洞、軟體升級未做校驗、組件暴露等漏洞,主要是業務方面的。下面我首先針對越權漏洞說下測試方法:
大家可能對用戶信息又疑問,下面我舉例來說明用戶信息:譬如A用戶的訂單號是唯一的,B用戶刪除自己的訂單時,把自己的訂單號改為A的,如果有越權漏洞,那麼B用戶就刪除了A用戶的訂單。
限於公司保密需要,我找幾個 烏雲 的漏洞來說明下,沒有的我就單獨說明。
從數據包中,我們可以看到addr_id是唯一標識用戶地址的,伺服器並沒有去做判斷用戶是否有許可權操作,導致了越權漏洞。諸如此類的還有保單信息、醫療保險等信息。這種改id號的最為初級的,也是最容易發現的越權漏洞。下面來看個進階版。
測試環境:
一次測試過程中,發現獲取用戶信息的時候要提交自己的用戶名,假設是XML文件:
我嘗試改為
發現沒有許可權獲取信息。怎麼辦呢?想到XML文件解析時,可能解析所有的節點,那麼我同時提交兩者的用戶名:
即可得到B用戶的信息。
6. Web應用安全的措施
所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,終達到欺騙伺服器執行惡意的SQL命令,比如先前的很多影視網站VIP會員密碼泄露大多就是通過Web表單遞交查詢字元實現的,天通苑電腦培訓發現這類表單特別容易受到SQL注入式攻擊。
SQL注入攻擊的原理本身非常簡單,相關攻擊工具容易下載,攻擊者獲得許可權後有利可圖。這使得它成為有效的、攻擊者常採用的Web入侵手段,是眾多網站成為惡意代碼傳播平台的起因之一。
針對這一攻擊手段認為,根本的措施是對Web應用的用戶輸入進行過濾。並針對Web應用的基本特性,對Web應用的整體安工作採取以下具體措施:
1、Web應用安全評估:結合應用的開發周期,通過安掃描、人工檢查、滲透測試、代碼審計、架構分析等方法,面發現Web應用本身的脆弱性及系統架構導致的安問題。應用程序的安問題可能是軟體生命周期的各個階段產生的,其各個階段可能會影響系統安的要點主要有:
2、Web應用安加固:對應用代碼埋緩檔及其中間件、資料庫、操作系統進行加固,並改善其應用部署的合理性。從補丁、管理介面、賬號許可權、文件許可權、通信加密、日誌審核等方面對應用支持環境和應用模塊間部署方式劃分的安性進行增強。
3、對外部威脅的過濾:通過部署Web防火牆、IPS等設備,監控並過濾惡意的外部訪問,並對惡意訪問進行統計記錄,作為安工作決策及處置的依據。
4、Web安全狀態檢測:持續地檢測被保護應用頁面的當前狀態,判斷頁面是否被攻擊者加入惡意代碼。同時通過檢測Web訪問日誌及Web程序的存放目錄,檢測是否存在文件篡改及是否被加入WebShell一類的網頁後門。
5、事件應急響應:提前做好發生幾率較大的安事件的預案及演練工作,哪蔽力爭以高效、合理的方式申報並處置安事件,並整理總結。
6、安全知識培訓:讓開發和運維人員了解並掌握相關知識彎亂,在系統的建設階段和運維階段同步考慮安問題,在應用發布前更大程度地減少脆弱點。
7. webservice的安全性有哪些
樓上的純屬扯淡,保證伺服器安全和webservice安全有毛關系啊,要想webservice安全首先要確保webservice傳輸過程中數據的安全和數據的正確性,數據可以使用特定的加密格式,然後在獲取到請求時進行解密比對,
webservice還可以對請求方的身份進行認證,可以使用 WS-Security,其原理就是往soap里加東西,然後伺服器再解析soap,
2: 使用證書,
8. 怎樣保證對外作為公共介面的webapi的安全性
現在很多網站都要用到api介面了吧~而且有些程序和網站通訊也必須用到介面。不過介面的最主要安全問題就是邏輯判斷的問題比如最常見的就是支付介面,支付介面。舉個例子,比如這是某支付的介面的判斷處理這只是個簡化版的~只提取了部分的漏洞,好吧orderID打成了orederid了。湊合著吧~然後寫個html模擬post提交不過現在部分支付介面都修復了這個漏洞,改成了主動到伺服器上查詢支付狀態~而不是被動等待伺服器返回~但是仍然有一些支付公司沒有修復這個漏洞,比如國外某機房的面板,而且這個面板還是很多人都用的收費面板~他的信用卡支付的地方就沒有進行驗證,如果有賬單,選信用卡,用firebug之類的改一個別人的信用卡ID,就可以用別人的信用卡支付(強烈不推薦!!並bs此行為)還有一種漏洞就是程序與web進行通訊,上次在eyuyan.com上看到的~我一看他寫的與web進行通訊驗證的時候的介面,沒有對sql注入做任何過濾~