的內容安全政策是由W3C支持一項倡議(web應用程序安全性)集團,以確保安全的瀏覽經驗所有用戶和同樣保護網站所有者和企業免受惡意攻擊。在這篇文章中,我們將研究更緊密CSP以及它是如何工作的,以及在一個web應用程序是什麼,它如何運作,為什麼一個公司可能希望使用一個營銷。
的內容安全政策或CSP是一個計算機安全標準,介紹了整個網絡,試圖阻止跨站點腳本編製,代碼注入攻擊和“點擊劫持”。這些活動都可以惡意內容的結果是一個可信的web頁麵上執行並最終會傷害用戶。
CSP是建議的W3C工作組Web應用程序安全性它已經得到了大多數現代瀏覽器的支持。
簡而言之,該協議旨在確保有一個標準化的方法通過該網站所有者可以聲明內容,瀏覽器將加載的批準起源通過他們的網站。這些包括腳本編寫的JavaScript、CSS和HTML,字體和圖像和嵌入對象比如applet和HTML 5特性。
它是如何工作的
在電腦上加載一個網站時,它實際上穿過幾件事情。首先,當你的URL輸入到地址欄,然後使用電腦來查找一個特定的IP。的IP地址服務器。服務器是一個大型的計算機就像任何其他,除非它有一個重要的工作,那就是“提供”從網上內容。這些電腦有大量存儲和將包含大量的文件如HTML腳本和圖像有助於構成一個網站。
瀏覽器在用戶的計算機將萍說服務器,要求一個特定的地址。如果一切正常,服務器連接,它將返回所有必要文件加載您的web頁麵。瀏覽器解釋這些文件並加載到頁麵中。
如果內容安全政策頭包含在這個服務器嗎響應,然後是一個兼容的客戶端將執行白名單策略。例如,JavaScript的政策需要更嚴格的執行模式,以防止跨站點腳本攻擊。JavaScript是一個基本的、便攜的編程語言,通俗地說,就是這禁用腳本的功能。
這些包括:
- 內聯JavaScript代碼
- < >腳本塊
- 內聯CSS聲明
- <時尚>塊
- JavaScript代碼動態評價
- Eval ()
- 動態CSS語句
當然,這嚴重限製了一個網站能做什麼。通過刪除某些功能通過特定的腳本和代碼,一個網站本質上削弱它的許多功能做互動遊戲,操作測驗和形式更加困難。
當使用CSP時,一個新的應用程序通常會非常簡單明了,以符合JavaScript框架兼容。同樣,現有應用程序可能需要重構。重構意味著代碼重寫以改變內部結構和布局,但在不改變外部行為的最終用戶可以看到的。換句話說,重寫代碼來執行相同的任務,但沒有違反這些要求。
所以這項工作如何?例如,建議CSP-compatible web應用程序應該從外部加載代碼源文件,而不是讓它嵌入在頁麵上。這是< script src >來完成。他們應該解析JSON數據而不是評估,他們應該使用EventTarget.addEventListener ()設置為特定的事件處理程序。
如果一個web應用程序應該違反這些要求,那麼瀏覽器將啟動POST請求report-uri價值具體。這將包含違反的細節。這些報告使用正則JSON結構,可以捕獲應用程序的API或公共CSP報告接收器。
惡意攻擊和CSP如何阻止他們
你可能不熟悉的術語如“點擊劫持”,在這種情況下,您可能沒有認識到需要規避的潛在風險軟件運行在服務器和瀏覽器。
在這種情況下,考慮下麵的一些威脅,麵對互聯網用戶出現由於JavaScript和PHP。
“點擊劫持”
“點擊劫持”是一種惡意的技術用來誘騙用戶點擊的東西,他們也無意。這可能會導致機密信息被釋放,也可以鉛下載文件,他們沒有打算。通常,當我們點擊一個鏈接,我們首先把鼠標懸停在我們可以看到的鏈接將帶我們或將做什麼。
不幸的是,有很多方法可以繞過這種透明度。最明顯的方法是通過簡單地將用戶重定向到另一個頁麵。這可能會導致一些問題,但是它不是嚴重使用內聯JavaScript什麼是可能的,這可能導致用戶惡意下載惡意軟件,或激活他們的攝像頭。CSP阻止這些更嚴重的侵犯,即使它不能防止簡單的重定向。
代碼注入
代碼注入涉及利用bug的代碼中移除必要的安全協議,以防止用戶或黑客發送他們的代碼解釋的程序。這可以發生在應用程序發送加密數據翻譯——在SQL、LDAP、XPath等等。然而,它也可以發生在許多其他場景。例如,允許用戶的程序上傳文件可以脆弱,可以程序無法區分用戶輸入和係統命令。今天,下麵的代碼注入相對少見,占1%的黑客和漏洞利用。這是部分由於CSP等措施。
跨站點腳本編製
跨站腳本攻擊是一個方法用來攻擊web應用程序為了注入代碼。這是被攻擊者為了繞過訪問控製如同源策略。這實際上是一個非常嚴重的問題,占大量的安全漏洞。
為什麼構建Web應用程序為您的業務
JavaScript是用來構建一個web應用程序,它是隻有當這種web 2.0功能添加到一個網站,網站所有者需要考慮這些複雜的問題。當你添加動態或互動元素,你可能打開你的網站和用戶的新威脅。為什麼允許這樣嗎?
“應用程序”一詞目前的一大嗡嗡聲的話,每個人都在線使用。當然這是最初流行的蘋果iPhone,並被選為一個詞由於巧妙地作為一個“應用程序”和“蘋果”的縮寫。然而,它已經蔓延到了頭,現在是一個術語,是指任何“光”應用程序可以廉價或免費下載的雲”,甚至直接從它。事實上,即便全部遺留軟件在Windows現在經常和短語描述了應用程序!
當然這是一個概念,被與其他手機和我們現在已經看到應用程序
- 在Windows手機
- 黑莓手機,當然
- Android。
同時,盡管這個詞也開始在網上獲得認可和現在也描述了網站做更多的不僅僅是顯示一個頁麵,比如“web應用程序”。
這些web應用程序是指在瀏覽器中運行的應用程序。有時,這些被設計成與一個特定的集成瀏覽器和瀏覽器的話HTML標記,如“驚奇漫畫應用”可以使用Chrome或者各種其他瀏覽器;但在其他情況下,他們將被設計工作在任何瀏覽器。一般來說,這些將使用JavaScript, HTML5, Flash和PHP來工作——和這些語言除了Flash支持跨設備意味著很少有跨平台兼容性問題(幾乎所有設備支持Java和PHP運行在服務器本身的意義是保證外觀相同,不管瀏覽器和規格的設備上觀看)。
事實上,在應用程序中構建PHP編程語言實際上是在服務器上運行。這就是我們所說的服務器端腳本的事實上,這意味著該項目將瀏覽器查詢時動態地改變服務器返回它。這可以用來創建遊戲和形式等。
其他web應用程序更接近完整的軟件包,可以用麵向對象的Python編程語言等。推特就是這樣一個例子,一個完整的web應用程序用Python編寫的。
通常這些應用程序還需要在服務器上存儲和檢索數據和文件,如用戶名和密碼,或圖片已經上傳到社交網絡就像臉譜網。這些將傾向於使用MySQL數據庫解決方案,比如為了存儲大量的數據為成千上萬的用戶。想象這些最簡單的方法是為多個電子表格存儲在雲中,除提供的唯一的界麵是網站所有者的代碼。
當這些類型的應用程序第一次開始在網絡上流傳,我們開始看到“web 2.0”一詞使用。這個描述的任何網站,不僅僅會加載一個頁麵,這將允許交互式組件。然而今天,所以很多網站使用這些特性,區別已經變得毫無意義。
很可能你的網站有“web 2.0”,“web應用程序”元素。如果你建立你的網站使用WordPress,那麼這本身就是一個依賴於PHP的web應用程序,數據庫,CSS和更多的為了顯示響應網站還允許用戶登錄等。與此同時,許多的小部件和插件你使用也可以被認為是應用程序或applet。
說,我們仍然會使用術語“web應用程序”來描述一個特性的一個網站,是真正意義上的互動,超越了一般網站的內容消費的目標。我們通常考慮這樣一個web應用程序,我們必須登錄,存儲數據,執行一個特定的有用的功能。
為什麼使用Web應用程序的業務嗎?
總之還有一些原因不跳上網絡應用馬車,開始用它來做一些非常有用和有趣的應用程序。語言已經存在很長一段時間之前和第一個web應用程序在web甚至主流概念(盡管他們不稱為“應用程序”在這一點上),然而,一些公司已經成功地使用它來創建真正獨特的產品在網絡上。大多數網站僅僅是靜態的HTML和CSS顯示內容和服務以外的任何目的。他們將使用提供的插件和小部件通過WordPress,但很少考慮這是如何增加——結束用戶體驗,或者它如何能成功貨幣化。Web應用程序同時允許你製作遊戲,計算器,問卷調查和其他更富有想象力的應用程序。
思考如何提高反彈率在你的網站上添加一個有趣的互動遊戲,或如何有用的特性添加到你的網站,用戶希望登錄和使用。如何衣服你在商店出售的可視化工具,以便用戶可以看到物品的樣子在一起之前就買什麼?如何有用,如果你有一個體重計算器健身網站嗎?或創建你的整個自己的社交網絡呢?
這有可能反複使遊客回到你的網站,靜態內容無法。不僅如此,但它立即提高了你聲譽和印象:人們仍然訓練認為軟件是更加困難比文字內容拖出。誰住在他們媽媽的地下室可以創建一個網站,裝上複製。但公司可以開發一個令人印象深刻的web應用程序是一個值得信任。
聰明的網絡應用程序的例子
再次看驚奇漫畫的示例web應用程序,這是真正的創新使用的網絡友好編碼提供了新的東西。本質上這是一個漫畫的粉絲可以閱讀平台“數字”漫畫在顯示器和瀏覽頁麵或享受麵板,麵板。這就意味著人們可以在他們喜歡閱讀漫畫筆記本電腦在火車上,這意味著他們不需要離開家為了獲得最新的問題——掙紮漫畫行業創造更多的市場機會。
這也意味著,漫畫可以以一種新的方式——更多的動畫和過渡和不同的方向感,來自能夠決定這麵板讀者看到,他們和順序讀多大言論和思想泡沫。一係列新的漫畫專門為這個平台“無限”漫畫已經開始真正利用這些創新,展示給漫畫的早期跡象的手臂中槍,他們真正需要的東西。可能你的企業享受從web應用程序類似的手臂中槍?
軟件即服務
或者更好的是,你的網站受益SAAS嗎?或“軟件即服務”?這甚至意味著構建你的整個商業模式周圍web應用程序的概念。
SAAS描述一個特定類型的商業模式提供服務的形式——你猜對了——軟件。換句話說,你為別人提供的產品或服務本身運行的在線,你可以不需要任何參與自己維護。多虧了雲,現代計算機和瀏覽器的力量,可以提供一係列的服務直接向某人的電腦,依靠嚴格的代碼,不需要人工幹預。
SAAS業務模型的例子
有很多這樣的例子已經提供在線服務的雲可以使用各種各樣的企業。例如有SohoOS是一個“微型企業管理”工具,有RecruiterBox當然是有用的對於招聘員工的公司,還有比如Salesforce“銷售”應用程序。
所有這些網站都是交互式b2b解決方案,允許用戶——在理論上更容易做生意或享受一個新特性。他們做事情喜歡組織數據,讓人們在一起,給你的生產力工具,如電子表格和其他金融建模軟件。還有那些為消費者,而不是企業提供服務。這些包括視頻和編輯軟件,如Spotify(一種音樂平台)和像Google Apps。無論你所在行業或領域有可能服務可以提供,人們願意使用。
為什麼SAAS ?
如果你有一個動態的軟件如接觸管理軟件,那麼這是你可以收費業務。舊的商業模式當然是簡單地包在玻璃紙和一個盒子,然後賣一個高價錢(你可以多付100美元,為生產力的軟件,通常超過40美元的遊戲)。這當然會工作,但它是開放的一些基本的缺陷。一個這意味著你的產品隻賣一次,令人驚訝的是少量的買家往往困擾頻繁更新。同時,不過這也意味著你的軟件可以很容易地複製,被盜和共享,它是一個緩慢的方式來銷售大開銷。
或者,通過提供一個web應用程序或服務在線,任何人都可以使用,你可以讓你的企業使用你的服務實際上沒有購買任何體育項目。他們支付注冊,這不僅使他們更有可能購買(如沒有大問最初成本),也讓他們更容易繼續支付和保持經常性客戶未來。他們覺得他們得到一個更好的交易,你從他們那裏得到更大的利潤。你也讓你的俘虜觀眾,能夠立即處理任何問題或抱怨。
還有更多令人興奮的方式,你也可以從一個web應用程序。例如,您可以使用這個來收集數據,然後把它賣掉,隻要用戶同意或數據是匿名的。這就是真實的SQL的力量出現的原因。想象能夠收集數據如何人店,他們是什麼,或者他們吃什麼。如果你可以想象出售這些數據的公司可以用它來賺更多的銷售。這可能會導致巨額利潤!