《大型網(wǎng)站技術(shù)架構(gòu)核心原理與案例分析》讀書(shū)筆記

1.大型網(wǎng)站架構(gòu)演化

大型網(wǎng)站軟件系統(tǒng)特點(diǎn)

  • 高并發(fā),大流量
  • 高可用:7*24小時(shí)不間斷服務(wù)
  • 海量數(shù)據(jù):存儲(chǔ)管理海量數(shù)據(jù)
  • 用戶分布廣泛,網(wǎng)絡(luò)情況復(fù)雜
  • 安全環(huán)境惡劣
  • 需求快速變更、發(fā)布頻繁
  • 漸進(jìn)式發(fā)展

大型網(wǎng)站架構(gòu)演化發(fā)展歷程

  • 初始階段網(wǎng)站:應(yīng)用程序、數(shù)據(jù)庫(kù)、文件都在一臺(tái)服務(wù)器;
  • 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離:應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、文件服務(wù)器;
  • 使用緩存改善網(wǎng)站性能:二八定律,80%的業(yè)務(wù)訪問(wèn)集中在20%的數(shù)據(jù)上。應(yīng)用程序本地緩存(速度快、緩存數(shù)據(jù)量有限)和遠(yuǎn)程分布式緩存(集群方式、理論上無(wú)限容量);
  • 使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力;
  • 數(shù)據(jù)庫(kù)讀寫(xiě)分離:寫(xiě)主庫(kù)、主從復(fù)制、讀從庫(kù)。數(shù)據(jù)訪問(wèn)模塊,使得讀寫(xiě)分離透明;
  • 使用反向代理和CDN加速網(wǎng)站響應(yīng);
  • 使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng);
  • 使用NoSQL和搜索引擎
  • 業(yè)務(wù)拆分:分而治之,多個(gè)獨(dú)立應(yīng)用獨(dú)立部署;
  • 分布式服務(wù):分布式服務(wù)調(diào)用共同業(yè)務(wù)服務(wù)完成具體業(yè)務(wù)操作;

2.大型網(wǎng)站架構(gòu)模式

  • 分層
    將系統(tǒng)橫向維度切分成幾個(gè)部分,每個(gè)部分負(fù)責(zé)相對(duì)比較單一的職責(zé),然后通過(guò)上層對(duì)下層的依賴和調(diào)用組成一個(gè)完整的系統(tǒng);
    常用三層網(wǎng)站分層架構(gòu):
    應(yīng)用層:負(fù)責(zé)具體業(yè)務(wù)和視圖展示,可以在細(xì)分為視圖層和業(yè)務(wù)邏輯層;
    服務(wù)層:為應(yīng)用層提供服務(wù)支持,也可以細(xì)分為數(shù)據(jù)接口層和邏輯處理層;
    數(shù)據(jù)層:提供數(shù)據(jù)存儲(chǔ)訪問(wèn)服務(wù),如數(shù)據(jù)庫(kù)、緩存文件、文件;

  • 分割
    分割是從縱向方面對(duì)軟件進(jìn)行切分,將不同的功能和服務(wù)分割開(kāi)來(lái),包裝成高內(nèi)聚低耦合的模塊單元;

  • 分布式
    分層和分割的一個(gè)主要目的是為了切分后的模塊便于分布式部署,將不同模塊部署在不同的服務(wù)器上,通過(guò)遠(yuǎn)程調(diào)用協(xié)調(diào)工作。
    常用的分布式方案有以下幾種:
    1). 分布式應(yīng)用和服務(wù):分層和分割后的應(yīng)用和服務(wù)模塊分布式部署;
    2). 分布式靜態(tài)資源:JS、CSS、圖片資源獨(dú)立分布式部署,采用獨(dú)立的域名,即動(dòng)靜分離;
    3). 分布式數(shù)據(jù)和存儲(chǔ)
    4). 分布式計(jì)算
    5). 分布式配置
    6). 分布式鎖
    7). 分布式文件系統(tǒng)

  • 集群
    多臺(tái)服務(wù)器部署相同的應(yīng)用構(gòu)成一個(gè)集群,通過(guò)負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)。
    集群化部署可以提供更好的并發(fā)特性,提供系統(tǒng)的可用性;

  • 緩存
    將數(shù)據(jù)存放在距離計(jì)算最近的位置以加快處理速度。
    CDN:內(nèi)容分發(fā)網(wǎng)絡(luò),部署在距離終端用戶最近的服務(wù)提供商,緩存網(wǎng)站的靜態(tài)資源;
    反向代理:網(wǎng)站前端架構(gòu)的一部分,用戶請(qǐng)求到達(dá)網(wǎng)站的數(shù)據(jù)中心時(shí),最先訪問(wèn)到反向代理服務(wù)器;
    本地緩存:應(yīng)用服務(wù)器本地緩存熱點(diǎn)數(shù)據(jù)在本機(jī)內(nèi)存中;
    分布式緩存:?jiǎn)螜C(jī)緩存數(shù)據(jù)量有限,將數(shù)據(jù)緩存到專門(mén)的分布式緩存集群中;

  • 異步
    業(yè)務(wù)之間的消息傳遞不是同步調(diào)用,而是將一個(gè)業(yè)務(wù)操作分成多個(gè)階段,每個(gè)階段之間通過(guò)共享數(shù)據(jù)的方式異步執(zhí)行進(jìn)行協(xié)作。
    異步架構(gòu)的典型下模式是生產(chǎn)者和消費(fèi)者模式,優(yōu)點(diǎn)是:提供系統(tǒng)可用性、加快網(wǎng)站響應(yīng)速度,消息并發(fā)訪問(wèn)高峰;

  • 冗余
    保證部分服務(wù)器宕機(jī)的情況下,網(wǎng)站依然可以繼續(xù)服務(wù),不丟失數(shù)據(jù),進(jìn)行一定程度的服務(wù)器冗余,數(shù)據(jù)冗余備份;

  • 自動(dòng)化
    自動(dòng)化代碼管理,自動(dòng)化發(fā)布,自動(dòng)化測(cè)試、自動(dòng)化安全檢測(cè)、自動(dòng)化部署、自動(dòng)化監(jiān)控、自動(dòng)化報(bào)警、自動(dòng)化失效轉(zhuǎn)移、自動(dòng)化失效恢復(fù)、自動(dòng)化降級(jí)、自動(dòng)化分配資源;

  • 安全
    網(wǎng)絡(luò)通信加密,防止常見(jiàn)攻擊,如XSS攻擊、SQL注入、垃圾信息過(guò)濾;

3.大型網(wǎng)站核心架構(gòu)要素

  • 性能
    性能優(yōu)化:瀏覽器端、應(yīng)用服務(wù)器端、異步、代碼層面優(yōu)化、數(shù)據(jù)庫(kù)優(yōu)化;
    性能指標(biāo):響應(yīng)時(shí)間、TPS、系統(tǒng)性能計(jì)數(shù)器
  • 可用性
    網(wǎng)站高可用的主要手段是容易,應(yīng)用部署在多臺(tái)服務(wù)器上,通過(guò)負(fù)載均衡對(duì)外提供服務(wù);
  • 伸縮性
    不斷向集群中加入服務(wù)器來(lái)緩解不斷上升的用戶并發(fā)訪問(wèn)壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求;
  • 擴(kuò)展性
    事件驅(qū)動(dòng)架構(gòu):通常利用消息隊(duì)列實(shí)現(xiàn);
    分布式服務(wù):將業(yè)務(wù)和可復(fù)用的服務(wù)分離開(kāi)來(lái),通過(guò)分布式服務(wù)框架調(diào)用;
  • 安全性

4.網(wǎng)站的高性能架構(gòu)

網(wǎng)站性能測(cè)試

  • 性能測(cè)試指標(biāo)
    √ 響應(yīng)時(shí)間:應(yīng)用執(zhí)行一個(gè)操作需要的時(shí)間,從發(fā)出請(qǐng)求開(kāi)始到響應(yīng)所需數(shù)據(jù)的時(shí)間;
    √ 并發(fā)數(shù):系統(tǒng)能同時(shí)處理請(qǐng)求的數(shù)目,對(duì)于網(wǎng)站而言,并發(fā)數(shù)即網(wǎng)站并發(fā)用戶數(shù); 網(wǎng)站系統(tǒng)用戶數(shù) >> 網(wǎng)站在線用戶 >> 網(wǎng)站并發(fā)用戶數(shù)
    √ 吞吐量:?jiǎn)挝粫r(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量,體現(xiàn)系統(tǒng)的整體處理能力。 TPS是每秒事務(wù)數(shù),HPS是每秒HTTP請(qǐng)求數(shù),QPS是每秒查詢數(shù);
    √ 性能計(jì)數(shù)器:包括System Load、對(duì)象與線程數(shù)、內(nèi)存使用、CPU使用、磁盤(pán)與網(wǎng)絡(luò)I/O
  • 性能測(cè)試方法
    √ 性能測(cè)試
    √ 負(fù)載測(cè)試
    √ 壓力測(cè)試
    √ 穩(wěn)定性測(cè)試
  • 性能測(cè)試報(bào)告
  • 性能優(yōu)化策略
    √ 性能分析
    √ 性能優(yōu)化

Web前端性能優(yōu)化

  • 瀏覽器訪問(wèn)優(yōu)化
    √ 減少http請(qǐng)求:http請(qǐng)求是無(wú)狀態(tài)的,每次http請(qǐng)求都需要建立通信鏈路進(jìn)行數(shù)據(jù)傳輸。主要手段有:合并CSS、合并JS、合同圖片等資源
    √ 使用瀏覽器緩存
    √ 啟用壓縮
    √ CSS放在頁(yè)面最上面、JS放在頁(yè)面最下面
    √ 減少Cookie傳輸

  • CDN加速

  • 反向代理

應(yīng)用服務(wù)器性能優(yōu)化

主要手段有緩存、集群、異步等

  • 分布式緩存
    網(wǎng)站性能優(yōu)化第一定律:優(yōu)先考慮使用緩存優(yōu)化性能。
    緩存的本質(zhì)是Hash表,數(shù)據(jù)緩存以一對(duì)Key、Value的形勢(shì)存儲(chǔ)在內(nèi)存Hash表中,Hash表數(shù)據(jù)讀寫(xiě)時(shí)間復(fù)雜度是O(1)。
  • 使用異步操作
    使用消息隊(duì)列講調(diào)用異步化,可以改善網(wǎng)站的擴(kuò)展性;
  • 使用集群
    網(wǎng)站高并發(fā)訪問(wèn)場(chǎng)景下,使用負(fù)載均衡技術(shù)為一個(gè)應(yīng)用構(gòu)建一個(gè)由多臺(tái)服務(wù)器組成的服務(wù)器集群,將并發(fā)訪問(wèn)的請(qǐng)求分發(fā)到多臺(tái)服務(wù)器上處理,避免單一服務(wù)器因負(fù)載壓力過(guò)大二響應(yīng)緩慢。
  • 代碼優(yōu)化
    √ 多線程:最大限度的使用CPU資源
    最佳啟動(dòng)線程數(shù)和CPU內(nèi)核數(shù)量成正比,和IO阻塞時(shí)間成反比;
    多線程編程要考慮線程安全的問(wèn)題:將對(duì)象設(shè)計(jì)為無(wú)狀態(tài)對(duì)象,使用局部對(duì)象,并發(fā)訪問(wèn)資源是使用鎖;
    √ 資源復(fù)用:?jiǎn)卫蛯?duì)象池
    √ 數(shù)據(jù)結(jié)構(gòu)
    √ 垃圾回收

存儲(chǔ)性能優(yōu)化

  • 機(jī)械硬盤(pán)VS固態(tài)硬盤(pán)
  • B+樹(shù) Vs LSM樹(shù)
    B+樹(shù)是一種轉(zhuǎn)么針對(duì)磁盤(pán)存儲(chǔ)優(yōu)化的N叉排序樹(shù),以樹(shù)節(jié)點(diǎn)為單位存儲(chǔ)在磁盤(pán)中,從跟開(kāi)始查找所需數(shù)據(jù)所在的節(jié)點(diǎn)編號(hào)和磁盤(pán)位置,將其加載到內(nèi)存中繼續(xù)查找;目前關(guān)系型數(shù)據(jù)庫(kù)多采用兩級(jí)索引的B+樹(shù);
    LSM樹(shù)可以看做是一顆N階合并樹(shù),數(shù)據(jù)寫(xiě)操作都在內(nèi)存中進(jìn)行,并且都會(huì)創(chuàng)建一個(gè)新的記錄,這些數(shù)據(jù)在內(nèi)存中仍然是一顆排序樹(shù)。目前需要NoSQL產(chǎn)品采用LSM樹(shù)做主要數(shù)據(jù)結(jié)構(gòu);
  • RAID VS HDFS
    目前服務(wù)器級(jí)別的計(jì)算機(jī)都支持插入多塊磁盤(pán),通過(guò)使用RAID技術(shù),實(shí)現(xiàn)數(shù)據(jù)在多塊磁盤(pán)上的并發(fā)讀寫(xiě)和數(shù)據(jù)備份;
    HDFS(Hadoop分布式文件系統(tǒng)),系統(tǒng)在整個(gè)存儲(chǔ)集群的多臺(tái)服務(wù)器上進(jìn)行數(shù)據(jù)并發(fā)讀寫(xiě)和備份。

5.網(wǎng)站高可用架構(gòu)

網(wǎng)站可用性度量與考核

  • 網(wǎng)站可用性度量
    網(wǎng)站不可用時(shí)間(故障時(shí)間) = 故障修復(fù)時(shí)間點(diǎn) - 故障發(fā)現(xiàn)時(shí)間點(diǎn)
    網(wǎng)站年度可用性指標(biāo) = (1-網(wǎng)站不可以時(shí)間/年度總時(shí)間)* 100%
    2個(gè)9是基本可用,網(wǎng)站年度不可用時(shí)間小于88小時(shí)
    3個(gè)9是較高可用,網(wǎng)站年度不可用時(shí)間小于9小時(shí)
    4個(gè)9是具備自動(dòng)恢復(fù)能力的高可用,網(wǎng)站年度不可以用時(shí)間小于53分鐘
    5個(gè)9是極高可用性,網(wǎng)站年度不可用時(shí)間小于5分鐘
  • 網(wǎng)站可用性考核
    故障分是指對(duì)網(wǎng)站故障進(jìn)行分類加權(quán)計(jì)算故障責(zé)任的方法。
    故障分 = 故障時(shí)間(分鐘) * 故障權(quán)重

高可用網(wǎng)站架構(gòu)

典型的網(wǎng)站設(shè)計(jì)通常遵循三層分層架構(gòu)模型:應(yīng)用層、服務(wù)層、數(shù)據(jù)層;
實(shí)現(xiàn)高可用架構(gòu)的主要手段是數(shù)據(jù)和服務(wù)的冗余備份和失效轉(zhuǎn)移。

高可用的應(yīng)用

應(yīng)用的顯著特點(diǎn)是無(wú)狀態(tài)性

  • 通過(guò)負(fù)載均衡進(jìn)行無(wú)狀態(tài)服務(wù)的失效轉(zhuǎn)移
  • 應(yīng)用服務(wù)器集群的Session管理
    Session管理的主要手段有:Session復(fù)制、session綁定、利用Cookie記錄Session、Session服務(wù)器

高可用的服務(wù)

  • 分級(jí)管理
  • 超時(shí)設(shè)置
  • 異步調(diào)用
  • 服務(wù)降級(jí)
  • 冪等性設(shè)計(jì)

高可用的數(shù)據(jù)

  • CAP原理:一個(gè)提供數(shù)據(jù)服務(wù)的存儲(chǔ)系統(tǒng)無(wú)法同時(shí)滿足數(shù)據(jù)一致性(Consistency)、數(shù)據(jù)可用性(Availbility)、分區(qū)耐受性(Patition Tolerance)這三個(gè)條件。
    大型網(wǎng)站通常會(huì)選擇強(qiáng)化分布式存儲(chǔ)系統(tǒng)的可用性(A)和伸縮性(P),而在一定程度上放棄一致性(C)
    數(shù)據(jù)一致性又分為:數(shù)據(jù)強(qiáng)一致性、數(shù)據(jù)用戶一致性、數(shù)據(jù)最終一致性
  • 數(shù)據(jù)備份:冷備和熱備,熱備又分為異步熱備和同步熱備;
  • 失效轉(zhuǎn)移:失效確認(rèn)、訪問(wèn)轉(zhuǎn)移、數(shù)據(jù)恢復(fù)

高可用網(wǎng)站的軟件質(zhì)量保證

  • 網(wǎng)站發(fā)布: 使用發(fā)布腳本來(lái)發(fā)布,每次關(guān)閉服務(wù)器都是機(jī)器中的一小部分,并且發(fā)布完成后可以立即訪問(wèn);
  • 自動(dòng)化測(cè)試:Web自動(dòng)化測(cè)試技術(shù)
  • 預(yù)發(fā)布驗(yàn)證:預(yù)發(fā)布服務(wù)器和線上正式服務(wù)器的唯一不同就是沒(méi)有配置在負(fù)載均衡服務(wù)器上,外部用戶無(wú)法訪問(wèn);
  • 代碼控制
  • 自動(dòng)化發(fā)布
  • 灰度發(fā)布

網(wǎng)站運(yùn)行監(jiān)控

  • 監(jiān)控?cái)?shù)據(jù)采集:
    √ 用戶行為日志收集:服務(wù)端日志收集、客戶端瀏覽器日志收集
    √ 服務(wù)器性能監(jiān)控
    √ 運(yùn)行數(shù)據(jù)報(bào)告
  • 監(jiān)控管理:系統(tǒng)報(bào)警、失效轉(zhuǎn)移、自動(dòng)優(yōu)雅降級(jí)

6.網(wǎng)站伸縮性架構(gòu)

網(wǎng)站架構(gòu)的伸縮性設(shè)計(jì)

  • 不同功能進(jìn)行物理分離實(shí)現(xiàn)伸縮
    縱向分離(分層后分離):將業(yè)務(wù)流程上的不同部分分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性;
    橫向分離(業(yè)務(wù)分割后分離):將不同的業(yè)務(wù)模塊分離部署
  • 單一功能通過(guò)集群規(guī)模實(shí)現(xiàn)伸縮
    使用服務(wù)器集群,將相同服務(wù)部署在多臺(tái)服務(wù)器上構(gòu)成一個(gè)集群整體對(duì)外提供服務(wù);

應(yīng)用服務(wù)器集群的伸縮性設(shè)計(jì)

  • HTTP重定向負(fù)載均衡
    優(yōu)點(diǎn)是簡(jiǎn)單,缺點(diǎn)是瀏覽器需要兩次請(qǐng)求服務(wù)器才能完成一次訪問(wèn),性能較差;
  • DNS域名解析負(fù)載均衡
    每次域名解析請(qǐng)求都會(huì)根據(jù)負(fù)載均衡算法計(jì)算一個(gè)不同的IP地址返回,這樣A記錄中配置的多個(gè)服務(wù)器就構(gòu)成一個(gè)集群,并可以實(shí)現(xiàn)負(fù)載均衡。
  • 反向代理負(fù)載均衡
    優(yōu)點(diǎn)是部署簡(jiǎn)單,缺點(diǎn)是反向代理服務(wù)器是所有請(qǐng)求和響應(yīng)的中轉(zhuǎn)站,其性能可能成為瓶頸;請(qǐng)求在HTTP協(xié)議層面,也叫作應(yīng)用層負(fù)載均衡。
  • IP負(fù)載均衡
    在網(wǎng)絡(luò)層通過(guò)修改請(qǐng)求目標(biāo)地址進(jìn)行負(fù)載均衡;
  • 數(shù)據(jù)鏈路層負(fù)載均衡
    在通信協(xié)議的數(shù)據(jù)鏈路層修改mac地址進(jìn)行負(fù)載均衡;Linux平臺(tái)式最好的鏈路層負(fù)載均衡開(kāi)源產(chǎn)品是LVS(Linux Visual Server)
  • 負(fù)載均衡算法
    √ 輪詢(Round Robin,RR)
    √ 加權(quán)輪詢(Weighted Round Robin,WRR)
    √ 隨機(jī)(Random)
    √ 最少連接(Least Conections)
    √ 源地址散列(Source Hashing)

7.網(wǎng)站的可擴(kuò)展架構(gòu)

利用分布式消息隊(duì)列降低系統(tǒng)耦合性

  • 事件驅(qū)動(dòng)架構(gòu)
    通過(guò)低耦合的模塊之間傳輸事件消息,以保持模塊的松散耦合,并借助事件消息的通信完成模塊間的合作。
  • 分布式消息隊(duì)列
    隊(duì)列是一致先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),分布式消息隊(duì)列可以看做將這種數(shù)據(jù)結(jié)構(gòu)部署到獨(dú)立的服務(wù)器上,應(yīng)用程序可以通過(guò)遠(yuǎn)程訪問(wèn)接口使用分布式消息隊(duì)列,進(jìn)行消息的存取操作,進(jìn)而實(shí)現(xiàn)分布式的異步調(diào)用。

利用分布式服務(wù)打造可復(fù)用的業(yè)務(wù)平臺(tái)

分布式消息隊(duì)列通過(guò)消息對(duì)象分解系統(tǒng)的耦合性,不同子系統(tǒng)處理同一個(gè)消息;分布式服務(wù)則通過(guò)接口分解系統(tǒng)的耦合性,不同子系統(tǒng)通過(guò)相同的接口描述進(jìn)行服務(wù)調(diào)用。
  • Web Service與企業(yè)級(jí)分布式服務(wù)
    優(yōu)點(diǎn)是成熟的技術(shù)規(guī)范和產(chǎn)品實(shí)現(xiàn),缺點(diǎn)是臃腫的服務(wù)注冊(cè)于發(fā)現(xiàn)機(jī)制,低效的XML序列化收到,開(kāi)銷較高的HTTP通信機(jī)制;
  • 大型網(wǎng)站分布式服務(wù)的需求與特點(diǎn)
    √ 負(fù)載均衡
    √ 失效轉(zhuǎn)移
    √ 高效的遠(yuǎn)程通信
    √ 整合異構(gòu)系統(tǒng)
    √ 對(duì)應(yīng)用最少侵入
    √ 版本管理
    √ 實(shí)時(shí)監(jiān)控
  • 分布式服務(wù)框架設(shè)計(jì)
    Dubbo
    Thrift

可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)

無(wú)需修改表結(jié)構(gòu)就可以新增字段的數(shù)據(jù)庫(kù),NoSQL產(chǎn)品

利用開(kāi)放平臺(tái)建設(shè)網(wǎng)站生態(tài)圈

開(kāi)放網(wǎng)站內(nèi)部服務(wù),封裝成一些調(diào)用接口開(kāi)放出去,供外部的第三方開(kāi)發(fā)者使用。

8.網(wǎng)站的安全性架構(gòu)

網(wǎng)站應(yīng)用的攻擊與防御

? XSS攻擊
XSS攻擊即跨站點(diǎn)腳本攻擊,值黑客通過(guò)篡改網(wǎng)頁(yè),并注入惡意的HTML腳本,在用戶瀏覽網(wǎng)頁(yè)時(shí),控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。
常見(jiàn)的XSS攻擊類型有兩種:反射型和持久型;
消毒:進(jìn)行過(guò)濾和消毒處理,對(duì)html腳本中的危險(xiǎn)字符轉(zhuǎn)義;
HttpOnly:瀏覽器緊張頁(yè)面JS訪問(wèn)帶有HttpOnly屬性的Cookie。

  • 注入攻擊
    SQL注入攻擊和OS注入攻擊
    消毒:過(guò)濾請(qǐng)求中可能注入的SQL
    參數(shù)綁定:使用預(yù)編譯授權(quán),綁定參數(shù)是最好的防SQL注入方法;
  • CSRF攻擊
    跨站點(diǎn)請(qǐng)求偽造,攻擊者通過(guò)跨站請(qǐng)求,以合法的用戶身份進(jìn)行非法操作,核心是利用了瀏覽器Cookie或服務(wù)器Session策略;
    防御手段:表單Token、驗(yàn)證碼、Referer check
  • 其他攻擊和漏洞
    √ Error Code:故意制造非法輸入,使系統(tǒng)運(yùn)行出錯(cuò),獲得異常信息,從而尋找系統(tǒng)漏洞進(jìn)行攻擊;
    √ HTML注釋:應(yīng)避免HTML語(yǔ)法注釋
    √ 路徑遍歷
  • Web應(yīng)用防火墻
    使用開(kāi)源的或者商用的網(wǎng)站防火墻
  • 網(wǎng)站安全漏洞掃描
    不定期對(duì)網(wǎng)站服務(wù)器進(jìn)行掃描,查漏補(bǔ)缺;

信息加密技術(shù)及秘鑰管理

  • 單向散列加密
    對(duì)不同輸入長(zhǎng)度的信息進(jìn)行散列技術(shù),得到固定長(zhǎng)度的輸出,散列計(jì)算過(guò)程是單向不可逆的;常見(jiàn)的單向散列算法有MD5、SHA
  • 對(duì)稱加密
    加解密秘鑰是同一個(gè),通常用于需要安全交換或存儲(chǔ)的場(chǎng)合,如Cookie加密,通信加密等;
    優(yōu)點(diǎn):算法簡(jiǎn)單、加解密效率高,缺點(diǎn)是秘鑰泄露就不安全了;
    常見(jiàn)的對(duì)稱加密算法有:DES加密,RC加密
  • 非對(duì)稱加密
    非對(duì)稱加密和解密的秘鑰不是同一個(gè),其中一個(gè)對(duì)外界公開(kāi)稱為公鑰,另外一個(gè)只有所有者指定,稱為私鑰;
    場(chǎng)景:信息安全傳輸、數(shù)字簽名
    常見(jiàn)算法:RSA算法
  • 密鑰安全管理
    密鑰和算法放在一個(gè)獨(dú)立的服務(wù)器上,甚至做成一個(gè)專用的硬件設(shè)施;
    加解密算法放在應(yīng)用系統(tǒng),秘鑰放在獨(dú)立服務(wù)器上;

信息過(guò)濾與反垃圾

常用的信息過(guò)濾與反垃圾手段有以下幾種:

  • 文本匹配:主要是解決敏感詞問(wèn)題;
  • 分類算法:簡(jiǎn)單實(shí)用的貝葉斯分類算法
  • 黑名單:被報(bào)告的垃圾郵箱放入黑名單

電子商務(wù)風(fēng)險(xiǎn)控制

  • 風(fēng)險(xiǎn):賬戶風(fēng)險(xiǎn)、賣家風(fēng)險(xiǎn)、買家風(fēng)險(xiǎn)、交易風(fēng)險(xiǎn)
  • 風(fēng)控:規(guī)則引擎、統(tǒng)計(jì)模型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容