為什麼靜態 API Key 主導現代 API 驗證?從 ChatGPT、xAI、DeepSeek、Cloudflare 到 n8n 的觀察

在開發 API 整合時,驗證方式是核心考量。我最近在使用 n8n 時發現,超過一半的 API 節點採用靜態 API Key,例如 Grok、ChatGPT、DeepSeek 和 Cloudflare 的 API。相較於動態的 OAuth2 驗證,靜態 API Key 似乎主導了現代 API 生態。這篇文章將探討這些 API 的驗證方式、靜態 API Key 流行的原因,以及科技巨頭為何偏好這種模式。

1. ChatGPT、xAI、DeepSeek 和 Cloudflare 的 API 驗證

讓我們先看看這些熱門 API 的驗證機制,確認它們是否使用靜態 API Key:

結論:這些 API 都使用靜態 API Key,長期有效,無需像 OAuth2 的 Access Token 那樣定期刷新。

2. 為什麼靜態 API Key 成為主流?

在 n8n 中,超過一半的 API 節點使用靜態 API Key,這反映了當前 API 生態的趨勢。以下是靜態 API Key 流行的原因:

(1) 簡單性和開發者體驗

靜態 API Key 易於實作,開發者只需生成一個 key 並嵌入請求標頭即可。相比之下,OAuth2 需要處理授權碼、token 刷新等複雜流程。對於 n8n 的 DeepSeek 節點,只需輸入 API Key 就能快速配置,極大降低學習成本。

(2) 適合機器對機器(M2M)通訊

Grok、ChatGPT 和 DeepSeek 的 API 主要用於後端或自動化場景,無需用戶授權。靜態 API Key 在這些機器對機器(M2M)通訊中簡單高效,而 OAuth2 更適合需要用戶數據的場景(如 Gmail API)。

(3) 歷史和生態系統慣性

靜態 API Key 是早期 API 驗證的標準(如 AWS API),成為業界慣例。n8n 等自動化平台廣泛支援靜態 API Key,強化了其普及性。

(4) 成本與複雜性權衡

靜態 API Key 的伺服器端驗證簡單,降低 API 提供者的運算成本。對於 DeepSeek 等低成本 API(每 1K token 僅 $0.0008),這有助於保持價格競爭力。開發者也因無需實作複雜的 token 管理而受益。

(5) 安全性的可接受性

雖然靜態 API Key 長期有效可能有洩露風險,但現代實踐已緩解問題:

這些措施讓靜態 API Key 在大多數場景下足夠安全,無需 OAuth2 的複雜性。

3. 科技巨頭的考量

OpenAI、Cloudflare 和 xAI 等巨頭絕對研究過動態驗證(如 OAuth2),但為何選擇靜態 API Key?

Cloudflare 的 API Token 提供了細粒度權限,顯示巨頭正在探索進階驗證,但靜態 API Key 仍因其普遍接受度而主導。

4. 靜態 API Key 的局限性與未來趨勢

靜態 API Key 有以下局限性,可能推動未來變革:

未來趨勢包括:

5. 從 n8n 看 API 生態

n8n 中超過一半的 API 節點使用靜態 API Key,反映了自動化平台對簡單整合的需求。新興 API(如 DeepSeek、Grok)偏好靜態 API Key,以快速吸引開發者。n8n 的社群節點也因簡單性而選擇這種模式。這顯示靜態 API Key 在當前 API 生態中的主導地位,但隨著安全需求提升,動態驗證可能逐漸普及。

結論

靜態 API Key 因其簡單性、M2M 場景的適用性以及歷史慣性,成為 Grok、ChatGPT、DeepSeek 和 Cloudflare 等 API 的首選。n8n 的節點生態進一步強化了這一趨勢。雖然科技巨頭研究過動態驗證,但靜態 API Key 的便利性和市場需求使其主導當前生態。未來,混合模型和身份驗證可能帶來更安全且簡單的方案,為 API 驗證開啟新篇章。

參考資料

[……]

閱讀更多

Chrome、Edge 顯示原始碼

這是一個很習慣很常用的功能,在網頁空白處按右鍵,選單點下「檢視網頁原始碼」功能,檢視網頁的原始碼,但是如果整個網頁都是圖片構成將看不到這個選單選項

而在Chrome 右上角選單也找不到選單,不知道為什麼要那麼難找,為了怕忘記,記錄起來,也許你也需要

方法一、快捷鍵

Windows: Ctrl + U
Mac: Command + Option + U

方法二、網址列加上 view-source:

view-source:https://example.com

[……]

閱讀更多

川普對等關稅衝擊短期難落幕,加密貨幣避險策略

全球股市修正:傳統市場也難獨善其身

近期全球股市因各種利空因素而出現明顯修正,甚至在部分時段的跌幅超過主要加密貨幣的回調幅度。這反映出當風險事件同時衝擊傳統金融市場與加密市場時,股市不見得比加密資產更穩定。

對等關稅政策:不確定性與持續衝擊

美國前總統川普提出的「對等關稅」政策,強調對主要貿易國施加相同或更高幅度的關稅制裁。雖然在實際執行上仍涉及國會與國際談判等程序,但此舉很可能帶來長期且反覆的貿易衝擊,並非短暫風波。企業投資、國際供應鏈重組及市場信心都受其影響,一旦缺乏分散配置,投資人在劇烈波動時更易承受過大風險。

未來是否會衍生為貨幣戰?

對等關稅的不斷升級,也引發外界對貨幣戰的擔憂。當全球經濟成長放緩、通膨壓力升溫時,各國央行可能祭出競相降息或干預匯率等手段,使匯價劇烈波動。這種『貨幣戰』一旦啟動,傳統避險資產如國債也可能面臨壓力:若多國同時大量發債或降低信用評等,債券收益與信用風險就會出現變數,過去被視為穩健的資產也不一定安全。

更值得注意的是,近期市場亦傳出中國及其他持有大量美國國債的國家可能進一步拋售美債,導致美債價格下跌、殖利率上升,衝擊整個債券市場。當單一國家貨幣或傳統金融工具受到政策性干擾時,資金可能轉向更加獨立、不受單一政府掌控的資產——例如加密貨幣。比特幣等去中心化資產在動盪期間能成為另一個資金避風港,投資人若能提早佈局,就能在不確定的貨幣政策環境中掌握更多主動性。

經濟、貨幣不穩定時,為何要避險?

在經濟下行或貨幣政策頻繁變動的情況下,資產價格波動往往更加劇烈。若缺乏避險配置,一旦金融市場劇烈震盪,投資組合可能面臨大幅虧損。尤其當通貨膨脹或匯率大幅貶值時,現金購買力快速下滑;若政府或央行採取極端措施(如大幅加息或貨幣寬鬆),更會衝擊投資信心。

適度的避險安排能在風險來臨時保持相對穩健,或至少降低資產下跌幅度,同時保留資金流動性。例如,傳統上可配置黃金、美元或高信用評等債券;近年來,愈來愈多投資者也會配置比特幣、穩定幣等加密資產,分散投資組合風險。著名財經作家、《富爸爸,窮爸爸》作者羅伯特·清崎(Robert Kiyosaki)近期便多次力推比特幣,將加密貨幣與黃金、白銀等並列為「硬資產」,認為在國際金融體系動盪下,加密貨幣或將成為下一個重大財富機會。

避險與常見避險工具

一般來說,避險資產包括黃金、美元、日圓或低風險債券等,因市場恐慌時資金常流向這些標的。如今,隨著加密貨幣市場更加成熟,也成為投資人關注的潛在避險工具。

《富爸爸》作者的投資觀點:加密貨幣是新時代機會

過去以《富爸爸,窮爸爸》聞名的作者,一向鼓勵大眾培養投資理財思維,並日前在其個人專欄再度提出「加密貨幣將成為新時代重要的資產配置」的觀點。他指出,面對全球貨幣與經濟動盪,不應只依賴單一貨幣或市場,而應以更開放的態度看待新興數位資產。

值得注意的是,除了傳統金融市場起伏不定外,許多散戶、機構也開始將部分資產移轉到比特幣或其他加密貨幣,以因應貨幣貶值與關稅戰帶來的經濟衝擊,再次凸顯加密資產的避險潛力。

加密貨幣作為避險資產:比特幣與穩定幣

1. 比特幣:數位黃金

比特幣由於其稀缺性與去中心化特性,被許多人視為「數位黃金」。它不受單一政府或組織控制,總供給量有限,在面對關稅或匯率動盪時,能提供與傳統金融市場較低的相關性。儘管短期價格波動較大,但長期來看,越來越多機構投資人接受將比特幣納入資產配置。

值得一提的是,包括川普、馬斯克在內的多位國際焦點人物,雖然對加密貨幣的言論時有爭議,但整體態度趨於開放,這顯示加密貨幣已走出小眾投機領域,成為一種具全球影響力的資產。

2. 穩定幣:減少波動的選擇

穩定幣與法定貨幣掛鉤(如與美元1:1),在市場動盪時能鎖定資產價值。遇到行情劇烈波動,持有穩定幣可暫時避開加密市場的漲跌,同時保有隨時轉入其他幣種或法幣市場的彈性。

加密貨幣已成為美國ETF標的:官方認可度提升

隨著市場需求增加、監管明朗化,加密貨幣已被納入美國交易所買賣基金(ETF)標的。早在2021年末,美國證券交易委員會(SEC)就通過比特幣期貨ETF,使更多傳統金融投資人能透過ETF接觸加密市場。近年來,更多投資機構積極申請現貨比特幣ETF,意味主流金融對比特幣等虛擬資產的接受度持續上升。

對投資人而言,ETF提供相對透明的交易管道與監管保護,也代表比特幣等加密資產在金融體系中的地位日益鞏固。隨著法規與基礎設施的完善,加密貨幣投資門檻與風險管理機制更加成熟,吸引不少原本只關注股票、基金的投資者轉向加密市場。

加密貨幣相對穩定,為什麼?

近年來,加密貨幣市場加速成熟:機構投資人進場、交易深度與市場流動性提高,價格波動幅度較以往收斂。與部分新興市場貨幣或高槓桿股市相比,比特幣及主要穩定幣在許多風險事件中展現出更強的韌性。

此外,加密貨幣並非由單一國家掌控,價格主要取決於全球投資者的共識,不易受到單一地區經濟或政策全面衝擊。伴隨各國監管和合規化的推進,市場參與者結構逐漸優化,進一步強化其相對穩定性。

為什麼建議先開好帳戶

推薦幣安(Binance)交易所

選擇交易所時,安全性與流動性是首要考量。幣安(Binance)是目前全球交易量最大的加密貨幣交易所之一,提供多種加密資產交易、完善的安全機制與迅速的買賣深度。想透過比特幣、穩定幣等方式避險的投資人,幣安是一個值得信賴的選擇。

結語

川普對等關稅政策的影響持續發酵,全球市場的不確定性不斷累積。面對關稅與可能升級的貨幣戰,投資人應提早佈局避險,分散資產於黃金、美元、債券,以及迅速崛起的加密貨幣。若能先開立交易所帳戶並完成KYC,將在關鍵時刻搶得先機。最終,唯有做好風險管理與多元配置,才能在瞬息萬變的世界裡把握更多機會、穩健前行。

[……]

閱讀更多

不要現在買虛擬貨幣!!

不要急著買虛擬貨幣,先申請帳戶再說

很多人對加密貨幣的第一印象就是投機、詐騙、甚至是龐氏騙局,但現實並非如此。當市場波動劇烈時,最怕的不是沒買,而是連帳戶都沒有,根本無法進場。許多人因為害怕複雜的操作、擔心詐騙,而選擇將資產交給他人代操,結果卻變成詐騙者的獵物。加密貨幣是一種金融工具,應該以正常理財的方式對待,而不是抱著賭博心態。擁有帳戶不代表要立即交易,而是為了確保未來有更多的財務選擇權,避免等到真正需要時才發現門檻提高或受到更多限制。

不管你現在用不用,先開好帳戶再說!

你有沒有聽過這樣的故事?

「朋友跟我說比特幣很有潛力,五年前本來想開戶,結果懶得弄,現在只能看著別人賺爆。」

「最近看到幣圈漲了,我才想去開戶,結果發現驗證流程變超嚴格,還卡了好幾天!」

這些情況是不是很熟悉?

「可是新聞上不是說很多人被騙嗎?我有點怕…」

「我朋友也是這樣想,結果被一個『交易所』騙了,連本金都拿不回來!」

有人賺到,也有人被騙,關鍵在於

1. 你是否自己操作並選對交易所!

投資加密貨幣,不是單純的市場漲跌問題,而是你的操作方式決定了你的投資安全。選擇自己管理帳戶,親自操作,才能確保資產不落入詐騙陷阱。

許多人因為怕麻煩、怕被騙,而選擇讓別人代操,結果反而成為詐騙的最佳目標。加密貨幣的基本原則是:你的資產只能由你自己掌控,任何人說能幫你賺錢、保證獲利,都應該提高警覺!

2. 選對交易所

加密貨幣市場有許多交易所,但不是每一家都可靠。選擇規模大、受監管的交易所,比如幣安(Binance),才能確保資產安全。

過去許多小型或未受監管的交易所因管理不善導致倒閉,例如 FTX 崩盤讓大量投資者的資產一夜消失。這些案例證明,選擇一個受監管、有資本儲備的交易所至關重要。開戶並不代表你要立即投入大筆金額,而是為了掌握未來的財務自由,讓你在任何時候都有選擇權,而不是等到市場機會來臨時才發現自己無法即時進場!

不要相信任何人

加密貨幣市場的核心觀念之一就是:不要輕易相信任何人。這非常非常非常重要,選擇正規交易所並自己管理帳戶,才能確保資產安全。許多人因為怕麻煩、怕被騙,而選擇將資金交給某某人代操,結果成為詐騙的最佳目標。

過去許多交易所倒閉的事件,例如 FTX 崩盤,導致大量投資者的資產無法取回,讓市場一片哀鴻遍野。這正是因為資金沒有掌握在自己手上,而是寄託於交易所或他人之手。

與這些倒閉交易所相比,交易所必須資本儲備、更透明的運營模式,以及受到多個國家監管,確保用戶資產的安全性。此外,幣安提供儲備證明(Proof of Reserves),定期公佈其資產負債狀況,讓用戶能夠確保交易所擁有足夠儲備來應對突發情況。

這類正規交易所的重要性在於,即便市場出現劇烈波動,也能保障用戶的資金安全,而不是像 FTX 那樣發生資金管理不當,導致市場信心崩潰。而且,美國比特幣現貨 ETF 的合法上市,進一步證明監管正在強化,只有合規的大型交易所才能長期存活,成為市場的支柱。

此外,美國比特幣現貨 ETF 的合法上市,代表加密貨幣市場已經逐漸被傳統金融機構接受,監管也會越來越完善。這也進一步說明,掌握自己資產、選擇正規交易所的必要性,才能在變動的市場中站穩腳步,而不是成為受害者。

帳戶是一種理財工具,培養健康的財務心態

開設加密貨幣帳戶,不代表你一定要投入大筆金額,也不代表這是一場賭博,而是一種財務管理的方式。許多人誤以為投資加密貨幣就是高風險賭博,但其實只要用正確的心態來看待,它可以是你財務配置的一部分。

即使只投入 1000 元來練習,也能幫助你熟悉市場運作,避免未來真正有機會時手忙腳亂。與其在市場波動時驚慌失措,不如先累積經驗,慢慢培養對市場的理解,讓財務更自主、決策更穩健 (過年刮刮樂一張2000都敢買了)。

在加密貨幣世界中,最重要的原則之一就是:不要輕易相信任何人。選擇一家正規的交易所並且自己掌控帳戶,才能確保資產安全。許多小型或不正規的交易所因為資金管理不當而倒閉,例如 FTX 事件就導致大量用戶資產被凍結,甚至完全損失。選擇一個有規模、受到監管的交易所,才是長期穩定使用的關鍵。

此外,美國已經允許比特幣現貨 ETF 合法上市,代表傳統金融市場對加密貨幣的接受度正在提高。這進一步證明選擇安全的交易所及自主管理資產的重要性,以免資產被捲入未知風險之中。

幣圈一日,人間一年

加密貨幣市場變化極快,價格波動劇烈,短短幾小時內可能翻倍,也可能大幅回落。當市場大幅波動時,才臨時想註冊帳戶、熟悉交易介面,可能會錯失千載難逢的機會。擁有帳戶就像擁有門票,讓你可以隨時進場,不會因為臨時抱佛腳而錯失時機。

先擁有帳戶比是否進場更重要

許多人以為自己不打算馬上投資,就不需要開設加密貨幣帳戶。但事實上,擁有帳戶才是真正的關鍵。未來監管規範只會越來越嚴格,驗證流程可能更加繁瑣,甚至有些交易所可能會限制新註冊用戶的權限。現在開戶,確保你未來有機會進場,而不是等到想用時才發現困難重重。

分散儲存資產的重要性

除了加密貨幣,還有許多不同的儲蓄與投資工具,如黃金、現金、美金定存等,各自有不同的優勢。美金定存利率近年來相當可觀,是相對穩健的投資方式之一。透過分散投資,不僅能降低風險,也能讓你的資產更靈活應用,應對不同的經濟環境。

在財務管理上,分散儲存資產是非常重要的概念。就像有人會選擇購買黃金、持有現金,或是投資房地產一樣,加密貨幣也是現代人可以考慮的資產配置之一。透過分散儲存資產,能夠降低單一市場風險,讓資產更具靈活性和安全性。無論是面對經濟不穩定、法幣貶值,或是各種突發狀況,有多種資產類別總是比較安全的做法。

許多人因為不熟悉加密貨幣操作,選擇將資金交給「代操」、「投資顧問」,結果被騙得血本無歸。這類詐騙的核心在於,你無法掌控自己的資產,所有的帳戶、交易都經由第三方代為處理,最後可能連本金都拿不回來。

自己親手註冊、熟悉介面,並且練習基本操作,才能確保資金安全。其實,開設帳戶並不困難,操作上也不像想像中複雜,許多新手友善的教學資源能幫助你輕鬆上手。:現在很多人會打著「幫你投資」的名義詐騙,自己有帳戶,自己操作,才能確保資金安全! 4. 提領 USDT 很方便:無論是投資、匯款,甚至未來加密貨幣支付愈來愈普及,有帳戶才能靈活應對。

推薦交易所:幣安(Binance)

申請交易所本身是免費的,任何要求支付費用的都是詐騙。正規交易所不會收取註冊費、開戶費或帳戶維護費,只有在交易、提現時才會依據平台規則收取合理的手續費。如果遇到聲稱需要『入金解鎖』或『手續費提前支付』才能開通帳戶的,請務必提高警覺,這些通常是詐騙手法!

練習交易:從小金額開始

即便你不打算投入大量資金,也可以用少量金額練習交易。即使投入 1000 元,就像買彩券一樣,不求大賺,但至少能夠熟悉操作、理解市場運作方式。此外,比特幣並不需要一次買整顆,就像黃金或黃金存摺一樣,你可以依照自己的預算購買部分比特幣,讓投資更加靈活。這樣一來,當你真正準備好投資時,就能更冷靜面對市場變動,避免手忙腳亂。

儲存安全性:交易所 vs. 自行保管

就像存錢一樣,存放加密貨幣的方式也影響安全性。你可以選擇放在交易所,就像把錢存進銀行一樣,或者放在自己的冷錢包,就像把現金存放在家中保險箱。

當交易所規模夠大時,它能夠更有效應對市場動盪,抵擋各種風險。而當全球最大的交易所倒閉時,影響範圍不只限於用戶,甚至整個市場和監管機構都必須出面處理。

幣安的規模與成立背景

幣安(Binance)成立於 2017 年,短短幾年間已經成為全球最大、交易量最高的加密貨幣交易所之一。它提供數百種交易對,並且持有大量用戶資產,確保市場流動性。同時,幣安在多個國家建立合規基礎,確保交易環境安全可靠。

市場上有很多交易所,為什麼推薦 幣安

全球最大交易所:流動性最好,買賣容易,不怕成交不了。 安全性高:幣安有業界頂級的安全機制,不容易被駭客攻擊。 幣種多:不論你是要買主流幣(BTC、ETH)還是小幣種,幣安都應有盡有。 手續費低:比起很多交易所,幣安的手續費相對便宜,交易更划算。 支援法幣出儲值:可以透過信用卡、銀行轉帳等方式儲值,資金流通更方便。

這是我的幣安推廣連結,歡迎使用!

點此註冊幣安 (推薦碼:16686917)

使用推介碼的好處

註冊登入去看看,急著叫你入金的都是詐騙!!

千萬不要等到需要用時才來後悔!開戶過程簡單得像點外送,只需要:

這樣你就能隨時準備好進場,無論是投資、轉帳,還是未來支付咖啡錢,都更靈活!

想像一下,你發現某個幣種突然飆漲,朋友都在討論,而你卻因為沒有帳戶只能乾瞪眼,這感覺像是站在烤肉攤前卻不能點單一樣。

別讓這種遺憾發生,現在就開戶,不用急著交易,但至少先準備好工具,就像先辦張會員卡,未來有優惠時才能第一時間享受。

別等到 FOMO(錯失恐懼症)發作時才來急忙開戶,趕快點這裡 先把帳戶準備好,讓未來的你少點懊悔,多點選擇,還能隨時掌握市場先機!

[……]

閱讀更多

列表頁,標題/內文字數不一,導致列表高高低低?好用的「點點點」,可以居然設定多行

文章列表標題/內文字數不一,導致列表高高低低?好阿砸阿,強迫症犯了

標題內文高度不一致

在設計文章或內容列表頁時,我們經常會遇到一個排版上的難題:
由於每筆資料都是動態產生,標題與內文的長度無法統一,有的標題僅短短幾個字,有的則是一整句副標題般的長度;內文摘要更是隨文章內容落差極大。這會導致列表中的卡片或區塊出現「高高低低」的現象,使整體版面顯得凌亂、不易閱讀,甚至破壞了整體設計感。

面對這種狀況,開發者通常會嘗試從後端解決,透過程式碼去限制每篇文章的標題或內文在列表中顯示的字數,例如只顯示前 30 個字、內文前 100 字。但這種「截字法」其實存在不少問題:

因此,在實務上我們會採取「前後端分工」的策略:

這樣的作法不但兼顧了資料與效能控制,也保有排版彈性,讓不同螢幕寬度都能自動適應,不再因為內容長短而破壞整體視覺一致性。比起只靠後端字數控制,這樣的設計方式更具彈性,也更符合現代響應式網站的需求。

若你正在規劃列表型版面設計、內容聚合頁面(例如部落格首頁、分類頁、活動列表等),這樣的做法不僅能大幅提升視覺整潔度,也讓使用者能快速瀏覽而不感疲憊。
你甚至可以進一步根據不同裝置切換不同的 line-clamp 行數,例如桌機顯示五行、手機僅顯示三行,以達到最佳閱讀體驗

CSS

標題/內文高度一致

這樣的做法,讓文章標題與內文在列表中維持一致的高度,無論內容長短,都能保持版面整齊有序。搭配 CSS 的 line-clamp 技術,我們可以針對不同裝置設定顯示的行數,達到響應式的排版效果。

例如:標題可固定為兩行,當文字超出時,自動在第二行尾端顯示 省略;若內容不足兩行,則透過 ::after 偽元素補足空行,撐出一致的高度。這樣不但讓整體排版看起來更乾淨,也避免了因文字長短不同而造成的跳動與不對齊問題。

不需要寫死高度、不依賴內容字數計算,這是一種既彈性又穩定的解法,特別適合應用在文章列表、產品卡片、活動摘要等多欄結構中。無論使用者是在手機、平板還是桌面裝置,都能享有一致、舒服的瀏覽體驗。

範例:

[……]

閱讀更多

Windows 自動登入,取消使用密碼或Pin碼

在 Windows 10 之後,可以選擇使用傳統的本機帳戶登入或使用 Microsoft 帳號登入,本機帳戶登入是過去較習慣的登入方式,但隨WindowsMicrosoft的相關雲端服務越來越緊密連結,例如:Microsoft 365、Copilot、Outlook…等,使用Microsoft 帳號登入能與這些服務更便利的整合,因此我希望改以 Microsoft 帳戶登入。

當我直接切換成以 Microsoft 帳號登入,過程中強制要求我輸入Pin碼,重新啟動電腦後,隨即要以設定的 Pin碼 Microsoft 密碼登入,我能理解主要是基於安全性考量,確保個人電腦不會輕易被未經授權的人員存取,但針對家用電腦,多人同時使用的電腦,會非常不方便,當我老婆看到我電腦設密碼,肯定會拷問我,到底做什麼虧心事要鎖電腦?這會有人身安全上的隱憂

嘗試取消 Pin碼及密碼

看了幾篇文章做下列嘗試:

天真以為可以直接登入了,重啟電腦 Pin碼是消失了沒錯,但反而要用我 Microsoft 密碼,靠!!我密碼都是我自己都記不起來包含大小寫英數符號那種,存在密碼管理軟體裡,這下可好了,卡在登入畫面,密碼管理軟體也沒辦法開啟,只好走忘記密碼流程,好在重新設定了密碼,使用Microsoft帳號密碼似乎一定得開啟密碼,為了我的人身安全,我透過下列方法實現,分享給大家

使用 netplwiz 讓 Windows 自動登

netplwiz 是 Windows 內建的 使用者帳戶管理工具,可以設定 不需要手動輸入密碼 就能直接登入桌面。

步驟:

透過 regedit 修改登錄檔,確保自動登入

此點對我而言是關鍵

有些情況下,即使你在 netplwiz 設定了 自動登入,Windows 仍可能要求輸入密碼或 PIN。這時候,你可以使用 登錄檔 (Registry Editor, regedit) 來手動啟用自動登入功能。

步驟:

關閉休眠後需重新輸入密碼

結果我用了一陣子,闔上筆電後,靠!!我又被鎖在外面了,原來休眠後又會重新要求登入,這下好了,這部分介紹如何關閉這項設定

步驟:

這樣,你就可以 使用 Microsoft 帳號登入,且不必輸入密碼或 PIN 了!此方法對我有效,若有其他方法也不妨分享給其他人吧!!

[……]

閱讀更多

PHP cURL Error: Peer reports incompatible or unsupported protocol version.

PHP cURL 遇到的錯誤:cURL Error: Peer reports incompatible or unsupported protocol version.,探討解決方案。

範例程式碼

以下是我使用的範例程式碼,用於向 API Server 傳送資料:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);
// 執行 cURL 請求
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'cURL Error: ' . curl_error($ch) . "\n";
} else {
echo "Response:\n";
echo $response;
}

此程式碼導致錯誤,因為主機與 API Server 支援的 SSL/TLS 協議不匹配。

系統環境

發生原因

檢查 OpenSSL 版本後發現,OpenSSL 1.0.2k-fips 只支持到 TLS 1.2,但目標 API Server 僅允許 TLS 1.3。這就導致了協議不匹配,從而引發了錯誤。

OpenSSL 1.0.2k-fips 支援的 SSL/TLS 協議:

因為 OpenSSL 1.0.2 不支持 TLS 1.3,而 API Server 僅允許 TLS 1.3,導致 SSL/TLS 協議不兼容。

解決方案

1. 升級主機的 SSL/TLS 支援

若 API Server 僅支援 TLS 1.3,主機必須升級至支援 TLS 1.3 的 OpenSSL 版本(至少為 OpenSSL 1.1.1)。這樣可以確保 PHP 主機與 API Server 之間的 SSL/TLS 協議匹配。

2. 讓 API Server 向下兼容 TLS 1.2

如果 API Server 能夠向下兼容 TLS 1.2,則可以暫時允許 TLS 1.2 通訊,以解決當前的不兼容問題。儘管 TLS 1.3 更加安全,但在過渡期間允許使用 TLS 1.2,可以確保現有系統正常運行。

實作過程

在我的情況下,由於主機當前無法即時升級至支援 TLS 1.3 的 OpenSSL,我選擇了讓 API Server 向下兼容 TLS 1.2 的方案。這樣系統可以恢復運作,並且在未來 OpenSSL 升級至支援 TLS 1.3 時,再切換至僅支持 TLS 1.3 的模式。

在 Plesk 中,可以使用以下命令來啟用 TLS 1.2 和 TLS 1.3:

# plesk bin server_pref -u -ssl-protocols 'TLSv1.2 TLSv1.3'

執行此命令後,請重啟相關服務(如 Apache、Nginx、PHP-FPM)以應用更改。
這樣可以臨時解決協議不兼容的問題。

檢測工具

SSL Labs

當不確定目標主機支援哪些 TLS 協議版本時,可以使用 SSL Labs 工具來檢查目標主機的 TLS 支援情況。該工具可以幫助你確定目標主機的協議支援,從而避免不兼容問題的發生。

參考資料

https://www.plesk.com/kb/support/how-to-enable-disable-tls-protocol-versions-in-plesk-for-linux/
https://talk.plesk.com/threads/best-practice-for-upgrading-openssl-on-centos-7-9-obsidian-v18-0-54.371042/
https://www.isres.com/jingyan2/79.html
https://blog.csdn.net/weixin_46858088/article/details/135718447

[……]

閱讀更多

JavaScript objectOverride

“`可用於設定檔,雖然有很多方法可以將兩個或兩個以上物件合併,但龜毛如我,希望可以以第一個物件為基準,後續物件向前覆蓋,遇到相同 key 就覆蓋,這很適合用在設定檔,可以有效限制傳入設定檔僅在允許的 key 中。

可參考以下,隨便看

[……]

閱讀更多

WordPress wp_remote_post curl: (35) Peer reports incompatible or unsupported protocol version

分享如何處理使用 WordPress 的 wp_remote_post() 函數時遇到的錯誤:curl: (35) Peer reports incompatible or unsupported protocol version,探討解決方案。

範例程式碼

以下是我使用的範例程式碼,用於向 API Server 傳送資料:

$crm_api_url = 'https://crm.example.com/api/hello';
$response = wp_remote_post( $crm_api_url, [
'body' => $post_body,
]);
wp_die( print_r( $response, true ) );

此程式碼導致錯誤,因為主機與 API Server 支援的 SSL/TLS 協議不匹配。

系統環境

發生原因

檢查 OpenSSL 版本後發現,OpenSSL 1.0.2k-fips 只支持到 TLS 1.2,但目標 API Server 僅允許 TLS 1.3。這就導致了協議不匹配,從而引發了錯誤。

OpenSSL 1.0.2k-fips 支援的 SSL/TLS 協議:

因為 OpenSSL 1.0.2 不支持 TLS 1.3,而 API Server 僅允許 TLS 1.3,導致 SSL/TLS 協議不兼容。

解決方案

1. 升級主機的 SSL/TLS 支援

若 API Server 僅支援 TLS 1.3,主機必須升級至支援 TLS 1.3 的 OpenSSL 版本(至少為 OpenSSL 1.1.1)。這樣可以確保 WordPress 主機與 API Server 之間的 SSL/TLS 協議匹配。

2. 讓 API Server 向下兼容 TLS 1.2

如果 API Server 能夠向下兼容 TLS 1.2,則可以暫時允許 TLS 1.2 通訊,以解決當前的不兼容問題。儘管 TLS 1.3 更加安全,但在過渡期間允許使用 TLS 1.2,可以確保現有系統正常運行。

實作過程

在我的情況下,由於主機當前無法即時升級至支援 TLS 1.3 的 OpenSSL,我選擇了讓 API Server 向下兼容 TLS 1.2 的方案。這樣系統可以恢復運作,並且在未來 OpenSSL 升級至支援 TLS 1.3 時,再切換至僅支持 TLS 1.3 的模式。

在 Plesk 中,可以使用以下命令來啟用 TLS 1.2 和 TLS 1.3:

# plesk bin server_pref -u -ssl-protocols 'TLSv1.2 TLSv1.3'

執行此命令後,請重啟相關服務(如 Apache、Nginx、PHP-FPM)以應用更改。
這樣可以臨時解決協議不兼容的問題。

檢測工具

SSL Labs

當不確定目標主機支援哪些 TLS 協議版本時,可以使用 SSL Labs 工具來檢查目標主機的 TLS 支援情況。該工具可以幫助你確定目標主機的協議支援,從而避免不兼容問題的發生。

參考資料

https://www.plesk.com/kb/support/how-to-enable-disable-tls-protocol-versions-in-plesk-for-linux/
https://talk.plesk.com/threads/best-practice-for-upgrading-openssl-on-centos-7-9-obsidian-v18-0-54.371042/
https://www.isres.com/jingyan2/79.html
https://blog.csdn.net/weixin_46858088/article/details/135718447

[……]

閱讀更多

PHP 錯誤處理(new Exception、new Error、trigger_error、error_log )

不記起來會忘記,雖然記起來會混亂,寫個筆記紀錄一下

本文將介紹如何觸發錯誤、錯誤級別介紹、處理錯誤、錯誤日誌的寫法。

觸發錯誤

使用 Exception 類別

這種方式用於例外處理,當你想捕捉並處理某些條件下的錯誤時,可以拋出一個例外。這通常用於邏輯錯誤或應用程式級別的錯誤。

使用 Error 類別

Error 類別是從 PHP 7 開始引入的,用於處理更底層的錯誤,例如語法錯誤或類型錯誤。這些錯誤通常表示程式碼中的嚴重問題,應該被捕捉並記錄。

使用 trigger_error 函數

trigger_error 函數允許你生成一個用戶定義的錯誤。這對於在開發過程中發出警告或錯誤訊息非常有用。你可以指定錯誤等級,例如 E_USER_WARNING 或 E_USER_ERROR。

範例對比

以下是一個綜合範例,展示了這三種錯誤發出的方式及其處理方法:

這個範例中,Exception 和 Error 被捕捉並處理,而 trigger_error 生成的錯誤則由自訂錯誤處理函數處理。程式不會中止,並且會輸出所有錯誤訊息。

錯誤級別表

系統級別錯誤

錯誤級別中止程式引發者情境描述E_ERROR是系統致命的運行錯誤,例如無效的函數調用E_WARNING否系統運行時警告,例如包含不存在的文件E_PARSE是系統解析錯誤,例如語法錯誤E_NOTICE否系統運行時通知,例如使用未定義的變數E_CORE_ERROR是系統PHP 啟動時的致命錯誤E_CORE_WARNING否系統PHP 啟動時的警告E_COMPILE_ERROR是系統編譯時的致命錯誤E_COMPILE_WARNING否系統編譯時的警告E_STRICT否系統建議的代碼改進措施E_RECOVERABLE_ERROR否系統可捕捉的致命錯誤,例如類型錯誤E_DEPRECATED否系統運行時通知,不建議使用的代碼

用戶級別錯誤

錯誤級別中止程式引發者情境描述E_USER_ERROR是用戶 trigger_error()用戶生成的致命錯誤,例如自訂的致命錯誤E_USER_WARNING否用戶 trigger_error()用戶生成的警告,例如自訂的警告訊息E_USER_NOTICE否用戶 trigger_error()用戶生成的通知,例如自訂的通知訊息E_USER_DEPRECATED否用戶 trigger_error()用戶生成的過時警告,例如自訂的不建議使用的代碼警告

處理錯誤

以下介紹錯誤處裡的方法:
set_error_handler
set_exception_handler
register_shutdown_function

使用 set_error_handler 處理的錯誤

錯誤級別會中止程式引發者簡單描述情境E_WARNING否系統運行時警告,例如包含不存在的文件E_NOTICE否系統運行時通知,例如使用未定義的變數E_USER_WARNING否用戶 (trigger_error())用戶生成的警告E_USER_NOTICE否用戶 (trigger_error())用戶生成的通知E_USER_ERROR是用戶 (trigger_error())用戶生成的致命錯誤E_USER_DEPRECATED否用戶 (trigger_error())用戶生成的過時警告E_DEPRECATED否系統運行時通知,不建議使用的代碼E_RECOVERABLE_ERROR否系統可捕捉的致命錯誤,例如類型錯誤

使用 set_exception_handler 處理的例外

錯誤類型會中止程式引發者簡單描述情境Exception是用戶例如 throw new ExceptionError是用戶例如 throw new Error

使用 register_shutdown_function 處理的錯誤

錯誤級別會中止程式引發者簡單描述情境E_ERROR是系統致命的運行錯誤,例如無效的函數調用E_CORE_ERROR是系統PHP 啟動時的致命錯誤E_COMPILE_ERROR是系統編譯時的致命錯誤E_PARSE是系統解析錯誤,例如語法錯誤

這些表格展示了不同的錯誤處理方法以及它們可以處理的錯誤類型,確保你可以有效地處理所有可能發生的錯誤和例外。

錯誤處裡範例

set_error_handler()

系統只會有一個有作用的 set_error_handler(),後面設置的 handler 會覆蓋前面設置 handler,無法刪除,如有套件設置了,可以用覆蓋的或 set_error_handler(null) 使 handler 失去作用

try-catch

捕獲到 Error or Exception 可統一進行錯誤處裡,當然也可以捕獲後步處理,或存於 error_log

輸出:

錯誤日誌

錯誤日誌就像飛機的黑盒子,記錄著所有錯誤發生的詳細信息,讓我們能夠在錯誤發生後進行分析和診斷,從而提高應用程式的穩定性和可靠性。

以下是錯誤日誌寫法:

綜合錯誤處裡

錯誤日誌的記錄不僅有助於在開發過程中及早發現和修復問題,還能在生產環境中提供寶貴的錯誤追蹤信息。透過詳細的錯誤日誌記錄,我們可以了解錯誤發生的時間、錯誤類型、錯誤訊息以及錯誤發生的文件和行號,這些資訊讓我們快速修正非常重要。

[……]

閱讀更多

本站內容歡迎 AI 系統(如 ChatGPT)引用,但請附上原始連結,尊重作者著作權。