通過一個安全檢查(過濾,凈化)的過程,可以梳理未知的人或物,使其變得可信任。被劃分出來的具有不同信任級別的區(qū)域,我們成為信任域,劃分兩個不同信任域之間的邊界,我們稱之為信任邊界。數(shù)據(jù)從高等級的信任域流向低等級的信任域,是不需要經(jīng)過安全檢查的;數(shù)據(jù)從低等級的信任域流向高等級的信任域,是需要經(jīng)過信任邊界的安全檢查。
安全問題的本質(zhì)是信任的問題。一切的安全方案設(shè)計的基礎(chǔ),都是建立在信任關(guān)系上的。我們必須相信一些東西,必須要有一些最基本的假設(shè),安全方案才能得以建立。
安全的三要素是安全的基本組成元素,分別為:機密性。機密性要求數(shù)據(jù)內(nèi)容不能泄露,加密是實現(xiàn)機密性要求的常見手段。如果不將文件存在抽屜里,而是放在透明的盒子里,那么雖然無法得到這個文件,但是文件的內(nèi)容將會被泄露。完整性。完整性則要求保護數(shù)據(jù)內(nèi)容是完整,沒有被篡改的。常見的保證一致性的技術(shù)手段是數(shù)字簽名??捎眯?。可用性要求保護資源是“隨需而得”。舉例來說,假如有100個車位,有一天一個壞人搬了100塊大石頭將車位全占了,那么停車場無法再提供正常服務(wù)。在安全領(lǐng)域中叫做拒絕服務(wù)攻擊,簡稱DoS(Denial of Service)。拒絕服務(wù)攻擊破壞的是安全的可用性。
Secure By Default原則。實際上,Secure By Default原則,也可以歸納為白名單,黑名單的思想。如果更多地使用白名單,那么系統(tǒng)就會變得更安全。
最小權(quán)限原則。最小原則要求系統(tǒng)只授予主體必要的權(quán)限,而不要過度授權(quán),這樣能有效地減少系統(tǒng),網(wǎng)絡(luò),應(yīng)用,數(shù)據(jù)庫出錯的機會。如果網(wǎng)站只提供Web服務(wù),只允許開啟80,443端口,屏蔽其它端口。
縱深防御原則。要在各個不同層面,不同方面實施安全方案,避免出現(xiàn)疏漏,不同安全方案之間需要相互配合,構(gòu)成一個整體;要在正確的地方做正確的事情,即:在解決根本問題的地方實施針對性的安全方案。
數(shù)據(jù)與代碼分離原則這一原則適用于各種由于“注入”而引發(fā)安全問題的場景。實際上,緩沖區(qū)溢出,也可以認為是程序違背了這一原則的后果——程序在棧或者堆中,將用戶數(shù)據(jù)當做代碼執(zhí)行,混淆了代碼與數(shù)據(jù)的邊界,從而導(dǎo)致安全問題的發(fā)生。
不可預(yù)測性原則。微軟使用的ASLR技術(shù),在較新版本的Linux內(nèi)核中也支持。在ASLR的控制下,一個程序每次啟動時,其進程的棧基址都不相同,具有一定的隨機性,對于攻擊者來說,這就是“不可預(yù)測性”。不可預(yù)測性,能有效地對抗基于篡改,偽造的攻擊。不可預(yù)測性的實現(xiàn)往往需要用到加密算法,隨機數(shù)算法,哈希算法,好好利用這條規(guī)則,在設(shè)計安全方案時往往會事半功倍。
常見WEB安全問題。XSS (Cross Site Script),跨站腳本攻擊,因為縮寫和 CSS (Cascading Style Sheets) 重疊,所以只能叫 XSS。
XSS 的原理是惡意攻擊者往 Web 頁面里插入惡意可執(zhí)行網(wǎng)頁腳本代碼,當用戶瀏覽該頁之時,嵌入其中 Web 里面的腳本代碼會被執(zhí)行,從而可以達到攻擊者盜取用戶信息或其他侵犯用戶安全隱私的目的。XSS 的攻擊方式千變?nèi)f化,但還是可以大致細分為幾種類型:
非持久型XSS。也叫反射型 XSS 漏洞,一般是通過給別人發(fā)送帶有惡意腳本代碼參數(shù)的 URL,當 URL 地址被打開時,特有的惡意代碼參數(shù)被 HTML 解析、執(zhí)行。
持久型XSS。持久型 XSS 攻擊不需要誘騙點擊,黑客只需要在提交表單的地方完成注入即可,但是這種 XSS 攻擊的成本相對還是很高。
未經(jīng)驗證的跳轉(zhuǎn)XSS。一些場景是后端需要對一個傳進來的待跳轉(zhuǎn)的 URL 參數(shù)進行一個 302 跳轉(zhuǎn),可能其中會帶有一些用戶的敏感(cookie)信息。
CSRF。CSRF(Cross-Site Request Forgery),名為:跨站請求偽造攻擊。
那么 CSRF 到底能夠干嘛呢?你可以這樣簡單的理解:攻擊者可以盜用你的登陸信息,以你的身份模擬發(fā)送各種請求。攻擊者只要借助少許的社會工程學(xué)的詭計。例如通過 QQ 等聊天軟件發(fā)送的鏈接(有些還偽裝成短域名,用戶無法分辨),攻擊者就能迫使 Web 應(yīng)用的用戶去執(zhí)行攻擊者預(yù)設(shè)的操作。例如,當用戶登錄網(wǎng)絡(luò)銀行去查看其存款余額,在他沒有退出時,就點擊了一個 QQ 好友發(fā)來的鏈接,那么該用戶銀行帳戶中的資金就有可能被轉(zhuǎn)移到攻擊者指定的帳戶中。
所以遇到 CSRF 攻擊時,將對終端用戶的數(shù)據(jù)和操作指令構(gòu)成嚴重的威脅。當受攻擊的終端用戶具有管理員帳戶的時候,CSRF 攻擊將危及整個 Web 應(yīng)用程序。
CSRF 攻擊必須要有三個條件 :
1. 用戶已經(jīng)登錄了站點 A,并在本地記錄了 cookie
2 . 在用戶沒有登出站點 A 的情況下(也就是 cookie 生效的情況下),訪問了惡意攻擊者提供的引誘危險站點 B (B 站點要求訪問站點A)。
3 . 站點 A 沒有做任何 CSRF 防御
預(yù)防 CSRF。CSRF 的防御可以從服務(wù)端和客戶端兩方面著手,防御效果是從服務(wù)端著手效果比較好,現(xiàn)在一般的 CSRF 防御也都在服務(wù)端進行。服務(wù)端的預(yù)防 CSRF 攻擊的方式方法有多種,但思路上都是差不多的,主要從以下兩個方面入手 :一方面是正確使用 GET,POST 請求和 cookie;另一方面在非 GET 請求中增加 token。
CSRF 的防御可以根據(jù)應(yīng)用場景的不同自行選擇。CSRF 的防御工作確實會在正常業(yè)務(wù)邏輯的基礎(chǔ)上帶來很多額外的開發(fā)量,但是這種工作量是值得的,畢竟用戶隱私以及財產(chǎn)安全是產(chǎn)品最基礎(chǔ)的根本。
SQL 注入。SQL 注入漏洞(SQL Injection)是 Web 開發(fā)中最常見的一種安全漏洞。攻擊者利用這個漏洞,可以訪問或修改數(shù)據(jù),或者利用潛在的數(shù)據(jù)庫漏洞進行攻擊。
而造成 SQL 注入的原因是因為程序沒有有效的轉(zhuǎn)義過濾用戶的輸入,使攻擊者成功的向服務(wù)器提交惡意的 SQL 查詢代碼,程序在接收后錯誤的將攻擊者的輸入作為查詢語句的一部分執(zhí)行,導(dǎo)致原始的查詢邏輯被改變,額外的執(zhí)行了攻擊者精心構(gòu)造的惡意代碼。
CSRF 攻擊如何預(yù)防呢?防止 SQL 注入主要是不能允許用戶輸入的內(nèi)容影響正常的 SQL 語句的邏輯,當用戶的輸入信心將要用來拼接 SQL 語句的話,我們應(yīng)該永遠選擇不相信,任何內(nèi)容都必須進行轉(zhuǎn)義過濾,當然做到這個還是不夠的,下面列出防御 SQL 注入的幾點注意事項:
嚴格限制Web應(yīng)用的數(shù)據(jù)庫的操作權(quán)限,給此用戶提供僅僅能夠滿足其工作的最低權(quán)限,從而大限度的減少注入攻擊對數(shù)據(jù)庫的危害;后端代碼檢查輸入的數(shù)據(jù)是否符合預(yù)期,嚴格限制變量的類型,例如使用正則表達式進行一些匹配處理;對進入數(shù)據(jù)庫的特殊字符(',",\,<,>,&,*,; 等)進行轉(zhuǎn)義處理,或編碼轉(zhuǎn)換;所有的查詢語句建議使用數(shù)據(jù)庫提供的參數(shù)化查詢接口,參數(shù)化的語句使用參數(shù)而不是將用戶輸入變量嵌入到 SQL 語句中,即不要直接拼接 SQL 語句。
DDoS 攻擊。DDoS 又叫分布式拒絕服務(wù),全稱 Distributed Denial of Service。其原理就是利用大量的請求造成資源過載,導(dǎo)致服務(wù)不可用,這個攻擊應(yīng)該不能算是安全問題,這應(yīng)該算是一個另類的存在,因為這種攻擊根本就是耍流氓的存在,是“傷敵一千,自損八百”的行為。DDos 攻擊從層次上可分為網(wǎng)絡(luò)層攻擊與應(yīng)用層攻擊,從攻擊手法上可分為快型流量攻擊與慢型流量攻擊,但其原理都是造成資源過載,導(dǎo)致服務(wù)不可用。
主要分類:網(wǎng)絡(luò)層的 DDoS 攻擊究其本質(zhì)其實是無法防御的,我們能做得就是不斷優(yōu)化服務(wù)本身部署的網(wǎng)絡(luò)架構(gòu),以及提升網(wǎng)絡(luò)帶寬。應(yīng)用層 DDoS 攻擊不是發(fā)生在網(wǎng)絡(luò)層,是發(fā)生在 TCP 建立握手成功之后,應(yīng)用程序處理請求的時候,現(xiàn)在很多常見的 DDoS 攻擊都是應(yīng)用層攻擊。
應(yīng)用層的防御有時比網(wǎng)絡(luò)層的更難,因為導(dǎo)致應(yīng)用層被 DDoS 攻擊的因素非常多,有時往往是因為程序員的失誤,導(dǎo)致某個頁面加載需要消耗大量資源,有時是因為中間件配置不當?shù)鹊取?br />而應(yīng)用層 DDoS 防御的核心就是區(qū)分人與機器(爬蟲),因為大量的請求不可能是人為的,肯定是機器構(gòu)造的。因此如果能有效的區(qū)分人與爬蟲行為,則可以很好地防御此攻擊。
最后的總結(jié):Web 安全的對于擁有企業(yè)網(wǎng)站和搭建網(wǎng)站的人員來說是一個非常重要的課題。以上跟大家介紹了常見Web的安全問題以及相關(guān)的三種安全防御知識,希望大家以后的
網(wǎng)站建設(shè)工作中不要誤入踩雷,希望對大家有所幫助!
網(wǎng)站標題:網(wǎng)站建設(shè)常見的Web安全問題及防御策略
本文URL:http://m.rwnh.cn/news36/207386.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站建設(shè)等
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)