中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

使用vue做商城網(wǎng)站項(xiàng)目難點(diǎn)一句簡(jiǎn)短走心文案

使用vue做商城網(wǎng)站項(xiàng)目難點(diǎn),一句簡(jiǎn)短走心文案,網(wǎng)站后臺(tái)登陸圖片,縉云政府網(wǎng)站建設(shè)方案一、問(wèn)題解析 在一個(gè)應(yīng)用系統(tǒng)運(yùn)行過(guò)程中,需要記錄、傳輸很多數(shù)據(jù),這些數(shù)據(jù)有的是非常敏感的,比如用戶姓名、手機(jī)號(hào)碼、密碼、甚至信用卡號(hào)等等。這些數(shù)據(jù)如果直接存儲(chǔ)在數(shù)據(jù)庫(kù),記錄在日志中,或者在公網(wǎng)上傳輸?shù)脑?amp…

一、問(wèn)題解析

在一個(gè)應(yīng)用系統(tǒng)運(yùn)行過(guò)程中,需要記錄、傳輸很多數(shù)據(jù),這些數(shù)據(jù)有的是非常敏感的,比如用戶姓名、手機(jī)號(hào)碼、密碼、甚至信用卡號(hào)等等。這些數(shù)據(jù)如果直接存儲(chǔ)在數(shù)據(jù)庫(kù),記錄在日志中,或者在公網(wǎng)上傳輸?shù)脑?#xff0c;一旦發(fā)生數(shù)據(jù)泄露,不但可能會(huì)產(chǎn)生重大的經(jīng)濟(jì)損失,還可能會(huì)使公司陷入重大的公關(guān)與法律危機(jī)。公司上下辛苦十幾年,一夜回到解放前。

所以,敏感信息必須進(jìn)行加密處理,也就是把敏感數(shù)據(jù)以密文的形式存儲(chǔ)、傳輸。這樣即使被黑客攻擊,發(fā)生數(shù)據(jù)泄露,被竊取的數(shù)據(jù)也是密文,獲取數(shù)據(jù)的人無(wú)法得到真實(shí)的明文內(nèi)容,敏感數(shù)據(jù)依然被保護(hù)著。而當(dāng)應(yīng)用程序需要訪問(wèn)這些密文的時(shí)候,只需要進(jìn)行數(shù)據(jù)解密,即可還原得到原始明文數(shù)據(jù)。加解密處理既保證了數(shù)據(jù)的安全,又保證了數(shù)據(jù)的正常訪問(wèn)。

但是,這一切的前提是加密和解密過(guò)程的安全。加密、解密過(guò)程由加密算法、加密密鑰、解密算法、解密密鑰組成。下圖是一個(gè)對(duì)稱加密、解密過(guò)程。對(duì)稱加密密鑰和解密密鑰是同一個(gè)密鑰,調(diào)用加密算法可將明文加密為密文,調(diào)用解密算法可將密文還原為明文。

所以,如果竊取數(shù)據(jù)的人知道了解密算法和密鑰,即使數(shù)據(jù)是加密的,也可以輕松對(duì)密文進(jìn)行還原,得到原始的明文數(shù)據(jù)。而很多時(shí)候,解密算法和密鑰都以源代碼的方式保存在代碼倉(cāng)庫(kù)里,黑客如果竊取了源代碼,或者內(nèi)部人泄露了源代碼,那么所有的秘密就都不是秘密了。

此外,在某些情況下,我們的系統(tǒng)需要和外部系統(tǒng)進(jìn)行對(duì)稱加密數(shù)據(jù)傳輸,比如和銀行加密傳輸信用卡卡號(hào),這時(shí)候涉及到密鑰交換,即我方人員和銀行人員對(duì)接,直接傳遞密鑰。如果因密鑰泄露導(dǎo)致重大經(jīng)濟(jì)損失,那么持有密鑰的人員將無(wú)法自證清白,這又會(huì)導(dǎo)致沒(méi)有人愿意保管密鑰。

因此,我們?cè)O(shè)計(jì)了一個(gè)加解密服務(wù)系統(tǒng),系統(tǒng)名稱為“Venus”,統(tǒng)一管理所有的加解密算法和密鑰。應(yīng)用程序只需要依賴加解密服務(wù)SDK,調(diào)用接口進(jìn)行加解密即可,而真正的算法和密鑰在系統(tǒng)服務(wù)端進(jìn)行管理,保證算法和密鑰的安全。

15.1 需求分析

一般說(shuō)來(lái),日常開(kāi)發(fā)中的加解密程序存在如下問(wèn)題:

  1. 密鑰(包括非對(duì)稱加解密證書(shū))保存在源文件或者配置文件中,存儲(chǔ)分散而不安全。
  2. 密鑰沒(méi)有分片交換機(jī)制,不能滿足高安全級(jí)密鑰管理和交換的要求。
  3. 密鑰缺乏版本管理,不能靈活升級(jí),一旦修改密鑰,此前加密的數(shù)據(jù)就可能無(wú)法解密。
  4. 加密解密算法程序不統(tǒng)一,同樣算法不同實(shí)現(xiàn),內(nèi)部系統(tǒng)之間密文不能正確解析。
  5. 部分加解密算法程序使用了弱加解密算法和弱密鑰,存在安全隱患。

為此,我們需要設(shè)計(jì)開(kāi)發(fā)一個(gè)專(zhuān)門(mén)的加解密服務(wù)及密鑰管理系統(tǒng),以解決以上問(wèn)題。

Venus是一個(gè)加解密服務(wù)系統(tǒng),核心功能是加解密服務(wù),輔助功能是密鑰與算法管理。此外,Venus還需要滿足以下非功能需求:

  • 安全性需求- 必須保證密鑰的安全性,保證沒(méi)有人能夠有機(jī)會(huì)看到完整的密鑰。因此一個(gè)密鑰至少要拆分成兩片,分別存儲(chǔ)在兩個(gè)異構(gòu)的、物理隔離的存儲(chǔ)服務(wù)器中 。在需要進(jìn)行密鑰交換的場(chǎng)景中,將密鑰至少拆分成兩個(gè)片段,每個(gè)管理密鑰的人只能看到一個(gè)密鑰片段,需要雙方所有人分別交接才能完成一次密鑰交換。
  • 可靠性需求- 加解密服務(wù)必須可靠,即保證高可用。無(wú)論在加解密服務(wù)系統(tǒng)服務(wù)器宕機(jī)、還是網(wǎng)絡(luò)中斷等各種情況下,數(shù)據(jù)正常加解密都需要得到保障。
  • 性能需求- 加解密計(jì)算的時(shí)間延遲主要花費(fèi)在加解密算法上,也就是說(shuō),加載加解密算法程序、獲取加解密密鑰的時(shí)間必須短到可以忽略不計(jì)。

根據(jù)以上加解密服務(wù)系統(tǒng)功能和非功能需求,系統(tǒng)用例圖設(shè)計(jì)如下:

系統(tǒng)主要參與者(Actor)包括:

系統(tǒng)主要用例過(guò)程和功能包括:

  1. 開(kāi)發(fā)工程師使用密鑰管理功能為自己開(kāi)發(fā)的應(yīng)用申請(qǐng)加解密算法和密鑰;
  2. 安全工程師使用密鑰管理功能審核算法和密鑰的強(qiáng)度是否滿足數(shù)據(jù)安全要求;
  3. (經(jīng)過(guò)授權(quán)的)密鑰管理者使用密鑰管理功能可以查看密鑰(的一個(gè)分片);
  4. 應(yīng)用程序調(diào)用加解密功能完成數(shù)據(jù)的加密、解密;
  5. 加密解密功能和密鑰管理功能調(diào)用密鑰服務(wù)功能完成密鑰的存儲(chǔ)和讀取;
  6. 密鑰服務(wù)功能訪問(wèn)一個(gè)安全、可靠的密鑰存儲(chǔ)系統(tǒng)讀寫(xiě)密鑰。

總地說(shuō)來(lái),Venus應(yīng)滿足如下需求:

  1. 集中、分片密鑰存儲(chǔ)與管理,多存儲(chǔ)備份,保證密鑰安全易管理。
  2. 密鑰申請(qǐng)者、密鑰管理者、密鑰訪問(wèn)者,多角色多權(quán)限管理,保證密鑰管理與傳遞的安全。
  3. 通過(guò)密鑰管理控制臺(tái)完成密鑰申請(qǐng)、密鑰管理、密鑰訪問(wèn)控制等一系列密鑰管理操作,實(shí)現(xiàn)便捷的密鑰管理。
  4. 統(tǒng)一加解密服務(wù)API,簡(jiǎn)單接口,統(tǒng)一算法,為內(nèi)部系統(tǒng)提供一致的加解密算法實(shí)現(xiàn)。

15.2 概要設(shè)計(jì)

針對(duì)上述加解密服務(wù)及密鑰安全管理的需求,設(shè)計(jì)加解密服務(wù)系統(tǒng)Venus整體結(jié)構(gòu)如下:

應(yīng)用程序調(diào)用Venus提供的加解密SDK服務(wù)接口,對(duì)信息進(jìn)行加解密,該SDK接口提供了常用的加密解密算法并可根據(jù)需求任意擴(kuò)展。SDK加解密服務(wù)接口調(diào)用Venus密鑰服務(wù)器的密鑰服務(wù),以取得加解密密鑰,并緩存在本地。而密鑰服務(wù)器中的密鑰則來(lái)自多個(gè)密鑰存儲(chǔ)服務(wù)器,一個(gè)密鑰分片后存儲(chǔ)在多個(gè)存儲(chǔ)服務(wù)器中,每個(gè)服務(wù)器都由不同的人負(fù)責(zé)管理。密鑰申請(qǐng)者、密鑰管理者、安全審核人員通過(guò)密鑰管理控制臺(tái)管理更新密鑰,每個(gè)人各司其事,沒(méi)有人能查看完整的密鑰信息。

15.2.1 部署模型

Venus部署模型如圖:

Venus系統(tǒng)的核心服務(wù)器是Key Server服務(wù)器,提供密鑰管理服務(wù)。密鑰分片存儲(chǔ)在文件服務(wù)器File Store和數(shù)據(jù)庫(kù)DB中。

使用Venus加解密服務(wù)的應(yīng)用程序(Application)部署在應(yīng)用程序服務(wù)器(App Server)中,依賴Venus提供的SDK API進(jìn)行數(shù)據(jù)加解密。而Venus SDK 則是訪問(wèn)密鑰服務(wù)器(Key Server)來(lái)獲取加解密算法代碼和密鑰。

安全起見(jiàn),密鑰將被分片存儲(chǔ)在文件服務(wù)器(Key File Store)和數(shù)據(jù)庫(kù)服務(wù)器(Key DB)中。所以Key Server服務(wù)器中部署了密鑰管理組件(Key Manager),用于訪問(wèn)數(shù)據(jù)庫(kù)中的應(yīng)用程序密鑰元信息(Key Meta Data),以此獲取密鑰分片存儲(chǔ)信息。Key Server服務(wù)器根據(jù)這些信息訪問(wèn)File Store和DB,獲取密鑰分片,并把分片拼接為完整密鑰,最終返回給SDK。

此外,密鑰管理控制臺(tái)(Key Console)提供一個(gè)web頁(yè)面,供開(kāi)發(fā)工程師、安全工程師、密鑰管理者進(jìn)行密鑰申請(qǐng)、更新、審核、查看等操作。

15.2.2 加解密調(diào)用時(shí)序圖

加解密調(diào)用過(guò)程如下時(shí)序圖所示。

  1. 應(yīng)用程序App調(diào)用Venus SDK對(duì)數(shù)據(jù)進(jìn)行加密(解密)。
  2. SDK檢查在本地是否有緩存加解密需要的密鑰和加解密算法代碼,如果有緩存,就直接使用該算法和密鑰進(jìn)行加解密。
  3. 如果本地沒(méi)有緩存密鑰和算法,請(qǐng)求遠(yuǎn)程服務(wù)器返回密鑰和算法。
  4. 部署在Venus服務(wù)器的Key Manager收到請(qǐng)求后,訪問(wèn)數(shù)據(jù)庫(kù),檢查該應(yīng)用配置的密鑰和算法Meta信息。
  5. 數(shù)據(jù)庫(kù)返回的Mata信息中包括了密鑰的分片信息和存儲(chǔ)位置,Key Manager訪問(wèn)文件服務(wù)器和數(shù)據(jù)庫(kù),獲取密鑰分片,并將多個(gè)分片合并成一個(gè)完整密鑰,返回給客戶端SDK。
  6. SDK收到密鑰后,緩存在本地進(jìn)程內(nèi)存中,并完成對(duì)App加解密調(diào)用的處理。

通過(guò)該設(shè)計(jì),我們可以看到,Venus對(duì)密鑰進(jìn)行分片存儲(chǔ),不同存儲(chǔ)服務(wù)器由不同運(yùn)維人員管理。就算需要進(jìn)行密鑰交換,那么參與交換的人員,每個(gè)人也只能獲得一個(gè)密鑰分片,無(wú)法得到完整的密鑰,這樣就保證了密鑰的安全性。

密鑰緩存在SDK所在的進(jìn)程(也就是應(yīng)用程序App所在的進(jìn)程)中,只有第一次調(diào)用時(shí)會(huì)訪問(wèn)遠(yuǎn)程的Venus服務(wù)器,其他調(diào)用只訪問(wèn)本進(jìn)程緩存。因此加解密的性能只受加解密的數(shù)據(jù)大小和算法的影響,不受Venus服務(wù)的性能影響,滿足了性能要求。

同時(shí),由于密鑰在緩存中,如果Venus服務(wù)器臨時(shí)宕機(jī),或者網(wǎng)絡(luò)通信中斷,也不會(huì)影響到應(yīng)用程序的正常使用,保證了Venus的可靠性。但是如果Venus服務(wù)器長(zhǎng)時(shí)間宕機(jī),那么應(yīng)用重新啟動(dòng),本地緩存被清空,就需要重新請(qǐng)求密鑰,這時(shí)候應(yīng)用就不可用了。那么Venus如何在這種情況下仍然保證高可用呢?

解決方案就是對(duì)Venus服務(wù)器、數(shù)據(jù)庫(kù)和文件服務(wù)器做高可用備份。Venus服務(wù)器部署2-3臺(tái)服務(wù)器,構(gòu)建一個(gè)小型集群,SDK通過(guò)軟負(fù)載均衡訪問(wèn)Venus服務(wù)器集群,若發(fā)現(xiàn)某臺(tái)Venus服務(wù)器宕機(jī),就進(jìn)行失效轉(zhuǎn)移。同樣,數(shù)據(jù)庫(kù)和文件服務(wù)器也需要做主從備份。

15.3 詳細(xì)設(shè)計(jì)

Venus詳細(xì)設(shè)計(jì)主要關(guān)注SDK核心類(lèi)設(shè)計(jì)。其他的例如數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)、服務(wù)器密鑰管理Console設(shè)計(jì)等,這里不做展開(kāi)。

15.3.1 密鑰領(lǐng)域模型

為了便于SDK緩存、管理密鑰信息以及SDK與Venus服務(wù)端傳輸密鑰信息,我們?cè)O(shè)計(jì)了一個(gè)密鑰領(lǐng)域模型,如下圖:

  1. 一個(gè)應(yīng)用程序使用的所有密鑰信息都記錄在KeyBox對(duì)象中,KeyBox對(duì)象中有一個(gè)keySuitMap成員變量,這個(gè)map的key是密鑰名稱,value是一個(gè)KeySuit對(duì)象。
  2. KeySuit類(lèi)中有一個(gè)keyChainMap成員變量,這個(gè)map類(lèi)的key是版本號(hào),value是一個(gè)KeyChain對(duì)象。Venus因?yàn)榘踩孕枨?#xff0c;需要支持多版本的密鑰。也就是說(shuō),對(duì)同一類(lèi)數(shù)據(jù)的加密密鑰過(guò)一段時(shí)間就會(huì)進(jìn)行版本升級(jí),這樣即使密鑰泄露,也只會(huì)影響一段時(shí)間的數(shù)據(jù),不會(huì)導(dǎo)致所有的數(shù)據(jù)都被解密。
  3. KeySuit類(lèi)的另一個(gè)成員變量currentVersion記錄當(dāng)前最新的密鑰版本號(hào),也就是當(dāng)前用來(lái)進(jìn)行數(shù)據(jù)加密的密鑰版本號(hào)。而解密的時(shí)候,則需要從密文數(shù)據(jù)中提取出加密密鑰版本號(hào)(或者由應(yīng)用程序自己記錄密鑰版本號(hào),在解密的時(shí)候提供給Venus SDK API),根據(jù)這個(gè)版本號(hào)獲取對(duì)應(yīng)的解密密鑰。
  4. 具體每個(gè)版本的密鑰信息記錄在KeyChain中,包含了密鑰名稱name、密鑰版本號(hào)version、加入本地緩存的時(shí)間cache_time、該版本密鑰創(chuàng)建的時(shí)間versionTime、對(duì)應(yīng)的加解密算法algorithm,當(dāng)然,還有最重要的密鑰分片列表keyChipList,里面按序記錄著這個(gè)密鑰的分片信息。
  5. KeyChip記錄每個(gè)密鑰分片,包括分片編號(hào)no,以及分片密鑰內(nèi)容chip。

15.3.2 核心服務(wù)類(lèi)設(shè)計(jì)

應(yīng)用程序通過(guò)調(diào)用加解密API VenusService完成數(shù)據(jù)加解密。如下圖:

  1. Venus SDK的核心類(lèi)是VenusService,應(yīng)用程序調(diào)用該對(duì)象的encrypt方法進(jìn)行加密,decrypt方法進(jìn)行解密。應(yīng)用程序需要構(gòu)造VenusData對(duì)象,將加解密數(shù)據(jù)傳給VenusService,VenusService加解密完成后創(chuàng)建一個(gè)新的VenusData對(duì)象,將加解密的結(jié)果寫(xiě)入該對(duì)象并返回。VenusData成員變量在后面詳細(xì)講解。
  2. VenusService通過(guò)VenusConnector類(lèi)連接Venus服務(wù)器獲取密鑰KeyBox和算法Algorithm,并調(diào)用Algorithm的對(duì)應(yīng)方法完成加解密。

以加密為例,具體處理過(guò)程時(shí)序圖如下:

首先,應(yīng)用程序App創(chuàng)建VenusData對(duì)象,并將待加密數(shù)據(jù)寫(xiě)入該對(duì)象。接著,App調(diào)用VenusService的encrypt方法進(jìn)行加密,VenusService檢查加密需要的密鑰和算法是否已經(jīng)有緩存,如果沒(méi)有,就調(diào)用VenusConnector請(qǐng)求服務(wù)器,返回密鑰和算法。VenusConnector將根據(jù)返回的算法字節(jié)碼來(lái)構(gòu)造加密算法的實(shí)例對(duì)象,同時(shí)根據(jù)返回的密鑰構(gòu)造相關(guān)密鑰對(duì)象,并寫(xiě)入KeyBox,完成更新。

下一步,VenusService會(huì)根據(jù)更新后的KeyBox中的密鑰和算法進(jìn)行加密,并將加密結(jié)果寫(xiě)入VenusData。最后,應(yīng)用程序App從返回的VenusData中獲取加密后的數(shù)據(jù)即可。

15.3.3 加解密數(shù)據(jù)接口VenusData設(shè)計(jì)

VenusData用于表示Venus加解密操作輸入和輸出的數(shù)據(jù),也就是說(shuō),加解密的時(shí)候構(gòu)造VenusData對(duì)象調(diào)用Service對(duì)應(yīng)的方法,加解密完成后返回值還是一個(gè)VenusData對(duì)象。

VenusData包含的屬性如下圖:

VenusData用作輸入時(shí):

  1. 屬性bytes和text只要設(shè)置一個(gè),即要么處理的是二進(jìn)制bytes數(shù)據(jù),要么是Striing數(shù)據(jù),如果兩個(gè)都設(shè)置了,Venus會(huì)拋出異常。
  2. 屬性version可以不設(shè)置(即null),表示Venus操作使用的密鑰版本是當(dāng)前版本。
  3. 屬性outputWithText表示輸出的VenusData是否處理為text類(lèi)型,缺省值是true。
  4. 屬性dataWithVersion表示加密后的VenusData的bytes和text 中是否包含使用密鑰的版本信息,這樣在解密的時(shí)候可以不指定版本,缺省值是false。

如果dataWithVersion設(shè)置為true,即表示加密后密文內(nèi)包含版本號(hào),這種情況下,VenusService需要在密文頭部增加3個(gè)字節(jié)的版本號(hào)信息,其中頭兩個(gè)字節(jié)為固定的magic code:0x5E、0x23,第三個(gè)字節(jié)為版本號(hào)(也就是說(shuō),密鑰版本號(hào)只占用一個(gè)字節(jié),最多支持256個(gè)版本)。

VenusData用作輸出時(shí),Venus會(huì)設(shè)置屬性keyName(和輸入時(shí)的值一樣)、version、 bytes、 outputWithText、dataWithVersion(和輸入時(shí)的值一樣),并根據(jù)輸入的 outputWithText決定是否設(shè)置text屬性。

15.3.4 測(cè)試用例代碼demo

publicstaticvoidtestVenusService()throws Exception {// 準(zhǔn)備數(shù)據(jù)VenusDatadata1=newVenusData();data1.setKeyName("aeskey1");data1.setText("PlainText");// 加密操作VenusDataencrypt= VenusService.encrypt(data1);System.out.printf("Key Name: %s, Secret Text: %s, Version: %d.\n", encrypt.getKeyName(),encrypt.getText(), encrypt.getVersion());// 準(zhǔn)備數(shù)據(jù)VenusDatadata2=newVenusData();data2.setKeyName("aeskey1");data2.setBytes(encrypt.getBytes());data2.setVersion(encrypt.getVersion());// 解密操作VenusDatadecrypt= VenusService.decrypt(data2);System.out.printf("Key Name: %s, Plain Text: %s, Version: %d.\n", decrypt.getKeyName(),decrypt.getText(), decrypt.getVersion());}

二、粉絲福利

最近很多同學(xué)問(wèn)我有沒(méi)有java學(xué)習(xí)資料,我根據(jù)我從小白到架構(gòu)師多年的學(xué)習(xí)經(jīng)驗(yàn)整理出來(lái)了一份80W字面試解析文檔、簡(jiǎn)歷模板、學(xué)習(xí)路線圖、java必看學(xué)習(xí)書(shū)籍?、 需要的小伙伴 可以關(guān)注我
公眾號(hào):“?灰灰聊架構(gòu)?”, 回復(fù)暗號(hào):“?159?”即可獲取

http://www.risenshineclean.com/news/10770.html

相關(guān)文章:

  • 在廣州注冊(cè)公司流程和費(fèi)用長(zhǎng)沙網(wǎng)站seo排名
  • 網(wǎng)站建設(shè)政策自己如何注冊(cè)一個(gè)網(wǎng)站
  • 國(guó)外做行程的網(wǎng)站廣告詞
  • 太湖縣城鄉(xiāng)建設(shè)局網(wǎng)站2023網(wǎng)站推廣入口
  • 如何給網(wǎng)站做宣傳網(wǎng)站注冊(cè)信息查詢
  • 外包公司做網(wǎng)站多少seo網(wǎng)絡(luò)推廣技術(shù)員招聘
  • 網(wǎng)站扁平化布局seo快速排名網(wǎng)站優(yōu)化
  • 做旅游網(wǎng)站需要引進(jìn)哪些技術(shù)人才搜索引擎優(yōu)化是什么工作
  • 50m專(zhuān)線做視頻網(wǎng)站無(wú)錫網(wǎng)絡(luò)公司
  • 電子商務(wù)網(wǎng)站開(kāi)發(fā)軟件在線看seo網(wǎng)站
  • WordPress評(píng)級(jí)評(píng)分主題如何做網(wǎng)站seo
  • 手機(jī)怎么做網(wǎng)站免費(fèi)的最佳磁力吧ciliba搜索引擎
  • 499可以做網(wǎng)站百度廣告推廣平臺(tái)
  • 記錄網(wǎng)站 自己做自助建站的優(yōu)勢(shì)
  • 怎么做網(wǎng)站界面設(shè)計(jì)百度愛(ài)企查電話人工服務(wù)總部
  • 網(wǎng)站建設(shè)個(gè)人網(wǎng)上銀行seo先上排名后收費(fèi)
  • 電子商務(wù)網(wǎng)站建設(shè)的展望參考網(wǎng)是合法網(wǎng)站嗎?
  • 鄭州網(wǎng)站建設(shè)漢獅網(wǎng)絡(luò)營(yíng)銷(xiāo)方式
  • 手把手教做網(wǎng)站能打開(kāi)各種網(wǎng)站的瀏覽器
  • python 開(kāi)發(fā)手機(jī)網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作軟件下載
  • wordpress jpg https貴州網(wǎng)站seo
  • 用織夢(mèng)做網(wǎng)站能練技術(shù)嗎seo排名優(yōu)化課程
  • 設(shè)計(jì)團(tuán)隊(duì)網(wǎng)站新站seo外包
  • 網(wǎng)站顏色搭配哪里有免費(fèi)的網(wǎng)站推廣軟件
  • 長(zhǎng)春做高端網(wǎng)站公司網(wǎng)頁(yè)百度
  • 百度推廣做網(wǎng)站百度快照不更新怎么辦
  • 愛(ài)網(wǎng)站網(wǎng)站查詢汽車(chē)營(yíng)銷(xiāo)策劃方案ppt
  • 網(wǎng)站建設(shè) 站內(nèi)搜索網(wǎng)頁(yè)設(shè)計(jì)模板圖片
  • 手機(jī)端網(wǎng)站開(kāi)發(fā)各地疫情最新消息
  • 什么網(wǎng)站專(zhuān)門(mén)做自由行的游戲推廣員怎么做