如何透過 SRI 驗證避免 CDN 劫持
SRI (Subresource Integrity) 是一個透過瀏覽器驗證引用的第三方資源,確保內容沒有被串改。
例如,我們常會引用第三方的 CDN 來源,以加快請求的時間。但由於 CDN 來源分散,難以進行定位,若其中一個來源節點受到劫持,可能會發生隨機的劫持,並且難以重複呈現,用戶刷新頁面後,就無法再重現。
Continue ReadingMarketing, SEO, Web trends, Programming tutorial, Web design, and Life event...
SRI (Subresource Integrity) 是一個透過瀏覽器驗證引用的第三方資源,確保內容沒有被串改。
例如,我們常會引用第三方的 CDN 來源,以加快請求的時間。但由於 CDN 來源分散,難以進行定位,若其中一個來源節點受到劫持,可能會發生隨機的劫持,並且難以重複呈現,用戶刷新頁面後,就無法再重現。
Continue ReadingRedis pub/sub 連線一段時間出現訂閱失敗的處理方式
Redis subscribe 在訂閱一段時間可能失敗的情況有兩種, 1. 啟動沒多久就發生超時, 2. 長期才發生的連結斷開
在實際開發過程,兩種方式情境都可以同時設置,處理方式如下:
Continue Reading這裡針對即時通訊架構,即時連線心跳檢測原理是什麼?各種配置機制的好與壞?以及如何提供穩定的連線品質,針對過去一些經驗進行分享~
Continue ReadingRESTful API 介紹及經驗分享
在現在系統開發,RESTful 無疑是 API 溝通的主流之一,在這裏,主要針對我個人對於 RESTful API 使用狀態及理解做一個分享。
REST 是一個設計風格,全名為 Representational State Transfer (表現層狀態轉換)是在 2000 年,由 Roy Thomas Fielding 所提出來的一種軟體架構風格,用於定義資源及管理資源。
RESTful 則是基於 REST 的一種設計風格,而不是原則!
一般API呼叫方式,主要可有兩部分:通訊協議及序列化
Continue Reading開放封閉原則 (Open-Closed Principle (OCP)) 談論的是,軟體開發所使用的類、方法等,應該具備能拓展,且不須透過手動修改。 在開發大型架構(或框架)時,嚴謹遵照這個方式,才能讓架構保持靈活與易擴充性。 實作方式,都是透過抽象的方式來處理: 繼承 介面 依賴注入 …等 在今天,我們開發專案多會選擇以OCP拓展的框架,在套件擴充及開發都會比較容易上手。 實際開發過程,如果是一些小專案,則可不必強制解耦合,尚未明確的內容提前被封裝,導致需求變動時,修改的成本會隨之提升。 因此,都會建議在剛開始先將邏輯完成,後續再透過重構方式來做封裝。
Continue Reading解決 Laravel 每日建立分隔 log 檔案,出現權限 Permission Deny 問題 如果設定排程執行 php artisan 預設會使用 root 來執行,就會導致產生的 log 檔案會有權限問題。 解決方式,首先關閉 root 產生的排程,開啟排程檔案將執行的程式先註解 crontab -e 接著,用 www-data 身份來設定排程 crontab -u www-data -e 例如,以下設定每三十分鐘執行 30 * * * * php /var/www/html/artisan course:create >> /dev/null 2>&1 以上設定完畢後,先刪掉今天產生的 storage/log/ log 檔案,
Continue Reading在 AWS 的 RDS Instance ,不同方案 CPU跟記憶體 都有差別,因此在預設時,都會針對主機規格幫你配置好可負載的人數,避免Instance崩壞,通常可以針對你的網站預估同時在線人數來推估適用的方案。
首先,先說明關於 RDS 針對使用者連線相關的配置參數。
Continue Reading這裡針對實際運行服務,記錄一些設定技巧
首先,從 Nginx 的設定檔 /etc/nginx/nginx.conf
nginx.conf 通常為了可將多站點的設定檔獨立分存,一般都會有以下設定,指定將某個資料夾的設定檔 include 到 nginx.conf 裡。
Continue Reading虛擬貨幣常見有 BTC(比特幣),ETH(以太幣),以及其他應用在各領域的貨幣,例如,AMB(Ambrosus 琥珀幣 針對生產鏈),AGI (SingularityNET, 針對AI),IOST(Internet of Services),YEE
(可參考 https://www.coingecko.com/zh-tw/%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B0/huobi)
這裡介紹目前常見的虛擬貨幣交易方式進行說明:
Continue ReadingProcess 是電腦中已執行 Program 的實體 每一個 Process 是互相獨立的 同一個 Process 中會有很多個 Thread ,每一個 Thread 負責某一項功能 同一個 Process 底下的 Thread 共享資源,如 記憶體、變數等 在多執行緒中(Multithreading),執行緒屬於同步機制,在同時間運行的執行緒,若兩個執行緒若同時存取或改變全域變數(Global Variable),則可能發生同步(Synchronization)問題。若執行緒之間互搶資源,則可能產生死結(Deadlock) Coroutine的程式概念, 在1958年由Melvin Edward Conway提出, 是一種類似多執行緒的單執行緒程式概念, 且可以避開多執行緒的race condition問題, 因為他是單執行緒!!!, 所以不會有第二個執行緒來搶著操作.
Continue Readingsudo lsblk
>>>輸出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
└─sda1 8:1 0 10G 0 part /
將剩下的空間都分配給 sda1
(注意,這裡 sda 與 1 之間有空格)
Continue Reading解決,Nas 透過靜態路由 Gateway 開通不同網段路由 目前公司有新添購主機,需要將該台主機可開通連結到多個網段, 這裡先說明一下,在內網 192.168.1.42 已經有設定可連結到多網段。 Nas 網路 192.168.1.49 與該台機器位於同網段,因此,只需要在新添購的 Nas 增加靜態路由, 再透過該路由指定 Gateway 的導向路徑到其他網段 (192.168.77.0) 即可
Continue ReadingCentOS 安裝 Java 與 Maven 流程 安裝JAVA Java環境檢查,若出現 ```-bash: CVT2HUGO: java: command not found``` 表示未安裝 JAVA java -version 下載 JAVA 64x yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 -y java -version 安裝 Maven 確認是否存在 maven
Continue Reading近期開發產品,需要再非公司的場合應用到固定IP。
由於這次產品使用的場合無法立即取得固定IP網路環境,並且實體網路也沒有的情況下,進行了幾種方式,最終找到可行的方式。
在這裡將流程進行紀錄。
Continue Reading.git 檔案過大,會需要依照當時專案的環境做不同處理,這裡將各種可能的狀況,提供解決方案。
當 .git 檔案過大,伺服器記憶體不足時,會出現以下錯誤:
swap Out of memory, malloc failed (tried to allocate xxxxxxxxxx bytes)
通常會發生這問題,原因都在於這個 git repository 已經使用一定時間,提交次數非常多,導致 .git 檔案過大
例如,.git 檔案就佔據 2Gb
遇到這狀況時,可能遇到一些問題,例如:主機環境是否能變動,commit 資訊是否要保留等
以下針對各種問題,提供對應的解決方法:
Continue ReadingPython 運行 Selenium 入門 這裡支援 Python 2.7, 3.4+ 安裝 Driver 下載瀏覽器 driver ,請依照你瀏覽器目前的版本下載對應的 Driver Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ Firefox: https://github.com/mozilla/geckodriver/releases Safari: https://webkit.
Continue Reading