自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Web 安全簡(jiǎn)明入門指南

安全 應(yīng)用安全
Web 安全已經(jīng)是 Web 開發(fā)中一個(gè)重要的組成部分,而許多程序猿往往希望專注于程序的實(shí)現(xiàn),而忽略了信息安全的實(shí)質(zhì)。如果

本文轉(zhuǎn)載自微信公眾號(hào)“前端先鋒”(jingchengyideng)。

Web 安全已經(jīng)是 Web 開發(fā)中一個(gè)重要的組成部分,而許多程序猿往往希望專注于程序的實(shí)現(xiàn),而忽略了信息安全的實(shí)質(zhì)。如果沒(méi)有嚴(yán)謹(jǐn)?shù)乜紤]到信息安全問(wèn)題,等出了亂子之后反而會(huì)造成更嚴(yán)重的損失。所以要在開發(fā)網(wǎng)絡(luò)應(yīng)用時(shí)更注重 Web 安全,甚至努力成為一個(gè)白帽子黑客。

常見(jiàn) Web 信息安全

一般來(lái)說(shuō) Web 安全需要符合三點(diǎn)安全要素:

  • 保密性:通過(guò)加密等方法確保數(shù)據(jù)的保密性
  • 完整性:要求用戶取得的資料是完整而不可被篡改的
  • 可用性:保證網(wǎng)站服務(wù)的持續(xù)可訪問(wèn)性

以下是常見(jiàn)的影響 Web 安全的攻擊手段:

1. SQL注入

使用惡意的 SQL 語(yǔ)法去影響數(shù)據(jù)庫(kù)內(nèi)容:

  1. // “--” 是 SQL 語(yǔ)句的注釋符號(hào) 
  2. /user/profile?id=1";DROP TABLE user-- 
  3.  
  4. SELECT * FROM USER WHERE id = "1"; DROP TABLE user-- 

用戶登錄:

  1. // password" AND 11=1--  
  2. SELECT * FROM USER WHERE username = "Mark"; AND 11=1-- AND PASSWORD="1234" 

簡(jiǎn)單的防范手段:不信任用戶輸入的數(shù)據(jù),確保用戶輸入必須經(jīng)過(guò)檢查,目前許多成熟的 Web 框架都支持ORM 服務(wù),大部分都基本防范了 SQL 注入。

2. XSS(Cross-Site Scripting)

XSS 也很容易將惡意代碼植入到網(wǎng)頁(yè),讓看到網(wǎng)頁(yè)的用戶受到干擾,常見(jiàn)的重災(zāi)區(qū)包括BBS、留言板等。實(shí)際上 XSS 的概念很簡(jiǎn)單,通過(guò)表單輸入建立一些惡意網(wǎng)址、惡意圖片網(wǎng)址或把 JavsScript 代碼注入到 HTML中,當(dāng)用戶瀏覽頁(yè)面時(shí)就會(huì)被觸發(fā)。

  1. <IMG SRC=""onerror="alert('XSS')"> 

簡(jiǎn)易的防范手段方式:不信任用戶輸入的任何資料,將所有輸入內(nèi)容編碼并過(guò)濾。

3. CSRF

CSRF 跨站請(qǐng)求偽造又被稱為 one-click attack 或者 session riding,通常縮寫為CSRF 或 XSRF。在已登錄的 Web 應(yīng)用上執(zhí)行非本意的操作的攻擊方法。

舉一個(gè)例子:假如一家銀行執(zhí)行轉(zhuǎn)帳操作的 URL 地址如下:

http://www.examplebank.com/withdraw?account=AccoutName&amount=10000&for=PayeeName

那么,一個(gè)惡意攻擊者可以在另一個(gè)網(wǎng)站上放置如下代碼:

  1. <img src="http://www.examplebank.com/withdraw?account=Mark&amount=10000&for=Bob"> 

如果用戶的登錄信息尚未過(guò)期的話,就會(huì)損失 10000 元。

簡(jiǎn)單的防范手段:

(1) 檢查 Referer 頭字段

這是比較基本的驗(yàn)證方式,通常 HTTP 頭中有一個(gè) Referer 字段,它的值應(yīng)該和請(qǐng)求位置在同一個(gè)域下,因此可以通過(guò)驗(yàn)證網(wǎng)址是否相同來(lái)驗(yàn)證是不是惡意請(qǐng)求,但是有被偽造的可能。

(2) 添加驗(yàn)證 token

現(xiàn)在許多 Web 框架都提供在表單加入由服務(wù)器生成的隨機(jī)驗(yàn)證 CSRF 的代碼,可以輔助防止 CSRF 攻擊。

4. DoS

DoS 攻擊具體可以分為兩種形式:帶寬消耗型以及資源消耗型,它們都是通過(guò)大量合法或偽造的請(qǐng)求大量消耗網(wǎng)絡(luò)以及硬件資源,以達(dá)到癱瘓網(wǎng)絡(luò)和系統(tǒng)的目的。

帶寬消耗型又分為分布式拒絕服務(wù)攻擊和放大攻擊:分布式拒絕服務(wù)攻擊的特點(diǎn)是利用僵尸網(wǎng)絡(luò)向受害者的服務(wù)器發(fā)送大量流量,目的在于占用其帶寬。放大攻擊和分布式拒絕服務(wù)攻擊類似,是通過(guò)惡意放大流量限制受害者系統(tǒng)的帶寬;其特點(diǎn)是利用僵尸網(wǎng)絡(luò)通過(guò)偽造的源 IP(即攻擊目標(biāo))向某些存在漏洞的服務(wù)器發(fā)送請(qǐng)求,服務(wù)器在處理請(qǐng)求后向偽造的源 IP 傳送應(yīng)答包,由于這些服務(wù)的特殊性導(dǎo)致應(yīng)答包比請(qǐng)求包更大,因此只使用少量的帶寬就可以使服務(wù)器器傳送大量的響應(yīng)到目標(biāo)主機(jī)上。

資源消耗型又分為協(xié)議分析攻擊(SYN Flood)、LAND攻擊、CC攻擊、僵尸網(wǎng)絡(luò)攻擊,應(yīng)用程序級(jí)洪水攻擊(Application level floods)等。

簡(jiǎn)易的防范手段:

  • 防火墻 設(shè)定規(guī)則阻擋簡(jiǎn)單攻擊
  • 交換機(jī) 大多交換機(jī)都有限制訪問(wèn)的控制功能
  • 路由器 大多交換機(jī)都有限制訪問(wèn)的控制功能
  • 黑洞啟動(dòng) 將請(qǐng)求轉(zhuǎn)發(fā)到不存在的位置

5. 文件上傳漏洞

許多 web 應(yīng)用都允許用戶把文件上傳到服務(wù)器,由于我們不知道用戶會(huì)上傳什么類型的文件,如果不加注意的話就會(huì)引發(fā)很大的問(wèn)題。

簡(jiǎn)單的防范手段:

(1) 阻止非法文件上傳

  • 設(shè)定文件名白名單
  • 判斷文件標(biāo)頭

(2) 阻止非法文件執(zhí)行

  • 存儲(chǔ)目錄與 Web 應(yīng)用分離
  • 存儲(chǔ)目錄無(wú)執(zhí)行權(quán)限
  • 文件重命名
  • 圖片壓縮

(3) 加密安全

6. 加密安全

大多數(shù)網(wǎng)站都會(huì)提供會(huì)員注冊(cè)的功能,要注意不要將密碼的明文存入數(shù)據(jù)庫(kù)。要如果你所登陸的網(wǎng)站在你忘記密碼時(shí),取回口令的功能會(huì)把密碼明文發(fā)到你的郵箱,那么這個(gè)網(wǎng)站十有八九是沒(méi)有做加密或者是用的是可逆加密算法。這時(shí)你的密碼很容易會(huì)出現(xiàn)在“我的密碼沒(méi)加密”(http://plainpass.com/)這個(gè)網(wǎng)站上。不過(guò)即使將密碼加密也未必安全,網(wǎng)上存在大量的破解網(wǎng)站(http://www.cmd5.com/),使用彩虹表就可以破解加密的密碼。所以一般會(huì)針對(duì)不同用戶使用隨機(jī)產(chǎn)生的 salt 字符串加鹽只后再進(jìn)行加密的方式來(lái)提高密碼的強(qiáng)健性。

  1. sha3(salt + gap + password) 

簡(jiǎn)單的入侵流程:

  • 偵查(Reconnaissance) 攻擊者準(zhǔn)備攻擊之前進(jìn)行的調(diào)查行為,使用搜索引擎或社工手段尋找目標(biāo)的相關(guān)信息,方便之后的攻擊
  • 掃描(Scanning) 掃描目標(biāo)主機(jī)的弱點(diǎn),獲取服務(wù)器操作系統(tǒng)、服務(wù)和運(yùn)行狀況等相關(guān)信息
  • 獲取權(quán)限(Gaining Access) 利用系統(tǒng)弱點(diǎn)獲得服務(wù)器權(quán)限
  • 維護(hù)權(quán)限(Maintaining Access) 維護(hù)當(dāng)前獲取到的權(quán)限,以便日后再次操作
  • 清除痕跡(Clearing Tracks) 清除入侵的痕跡

總結(jié)

隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,信息安全會(huì)越來(lái)越重要,當(dāng)有系統(tǒng)上線時(shí),最好按照《信息安全檢查清單》

(https://github.com/FallibleInc/security-guide-for-developers/blob/master/security-checklist.md)檢查一下有哪些安全事項(xiàng)是被你忽略掉的。

 

責(zé)任編輯:趙寧寧 來(lái)源: 前端先鋒
相關(guān)推薦

2017-12-04 10:03:45

2017-01-05 13:41:56

2019-02-15 08:51:22

2011-06-08 13:08:03

WEB設(shè)計(jì)

2024-08-27 09:09:49

Web系統(tǒng)JSP

2024-11-12 15:46:37

2021-12-06 09:00:00

開發(fā)WebDjango

2018-06-06 01:02:31

2017-03-23 09:54:17

CentOS 7FirewallD指南

2009-09-18 13:00:20

2009-05-25 15:18:52

2011-03-11 16:53:21

2023-02-14 17:11:50

開源鴻蒙刷機(jī)指南

2011-03-08 09:22:37

2010-08-03 15:19:08

FlexBuilder

2011-05-18 15:15:44

MySQL

2021-03-26 10:31:19

人工智能AIOps

2022-01-10 07:37:01

安全API程序

2015-03-11 09:55:08

Web開發(fā)初學(xué)指南Web開發(fā)指南

2009-04-23 14:24:18

Web交換機(jī)網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)