跳到主要內容

用 http-auth 基本身分驗證為安裝在雲端 (AWS、GCP) 的 Gekko 做一個簡單登入介面,避免交易所 API 被盜用



Gekko 本身的網頁 UI 沒有附帶任何身分驗證機制,換句話說如果開在公網上只要有你主機 IP 的人都可以進到控制介面,雖然 Gekko 加入了 API Key 之後是沒辦法看到原始的金鑰字串,但畢竟仍然有交易功能,可能被有心人士惡搞。目前的做法多半會是從主機端的安全來著手,開在 Google Cloud (GCP) 或 Amazon EC2 的可以使用它本身的防火牆規則來去禁止非你以外的 IP 連線,但對於大多數人可能不像我有靜態 IP,變得每次 ISP 重新分配 IP 或使用別的網路連線又要重設,為了安全要付出的麻煩還真不少阿。

所以就想到做一個很陽春的 http-auth 基本身分驗證機制,簡單說就是要登入啦,在讀入 Gekko UI 之前得要先輸入設定的帳號密碼才能通關,雖然不敢保證這個安全機制萬無一失,但至少是多了一層保護,而且安裝也很簡單,最重要的還是不要隨便透漏自己的 IP 給他人啦。


npm install http-auth
首先要安裝 http-auth 的套件才能使用身分驗證的功能。


再來打開 Gekko 資料夾中的 web/server.js,分別加入以下兩段程式碼。

var auth = require('http-auth');
var basic = auth.basic({
realm: "Restricted",
file: __dirname + "/pass.htpasswd"
});
這段加到 server.js 的最上方就可以了,pass.htpasswd 就是你的金鑰,可以自行更改檔名或路徑,之後記得上傳到與程式碼指定的相同路徑就好了。

app.use(auth.koa(basic));
這段則加到 const app = koa(); 後面即可。


之後就要製作金鑰檔,基本上就是文字檔,簡單的格式就是「帳號:密碼 ,建議你的密碼可以拿去加密,不要直接放解密的密碼比較好。把這個檔案存成 pass.htpasswd 或你剛剛指定的檔名,上傳到 gekko/web 內 (或你指定的路徑)。


製作加密 (encrypt) 的密碼可以參考這個網站的產生器,只要把密碼打入就可以加密了,如果不放心使用線上的服務也可以去下載加密用的軟體回來跑。


之後在從瀏覽器進入 Gekko 介面時就會要求帳號密碼來進行身分驗證了,你也可以在 pass.htpasswd 內新增多個帳號密碼組合供更多人使用。


切記,這個並不是非常有效的安全機制,安全最好還是從主機端的防火牆著手,不要開啟不需要的 Port,也不要隨意讓別人知道你的主機 IP 避免自己交易所的 API 落入他人之手。 





留言



這個網誌中的熱門文章

Linux (Ubuntu) 查詢硬碟容量、剩餘大小指令

在 Ubuntu Desktop 版本或有安裝 GUI 像 Xfce 的 Server 版本當然可以直接從圖形介面查看硬碟容量和已經使用的大小, 但如果是在純 CLI 版本或使用 SSH 連線時呢?那就需要用到指令了。 顯示硬碟容量、已使用、可用大小。 df -h 查詢資料夾所占硬碟的大小。 du -h 查詢檔案大小 ls -l

吃光硬碟讀寫的大怪獸 - Superfetch 是什麼?可以關嗎?

Superfetch 是 Windows 內建的硬碟快取功能,它會預先將檔案讀取起來到 Ram 裡方便稍後做使用,所以常常在工作管理員內都可以看到 Superfetch 往往占掉了不少的硬碟使用量,那這樣的情形是好的嗎?其實理論上並不會有太大影響,畢竟 Superfetch 只是將等會要讀取的內容先預置在 Ram 中,如果不趁硬碟負載小的時候優先讀取,之後反而可能忙不過來呢。當然如果你是使用 SSD 的話可能會為使用壽命擔心, 高頻率的讀取可能加速固態硬碟老化,那在讀取速度原本就很快的 SSD 當然就相對的沒有必要開啟 Superfetch 了。 Superfetch 在電腦待機時吃掉大部分硬碟使用量是很常有的事。 要關閉也很簡單, Win+R > services.msc 打開「服務」,找到 Superfetch。 右鍵 > 內容,將它更改為「 已停用 」後確定即可。

鍵盤按鍵壞了怎麼辦?用 Sharpkeys 換一個鍵來用就好啦 (重新設定 / 配置鍵盤按鍵 / Key Mapping)

我有一個壞習慣就是很常按 Alt+Tab,有時候即使沒要跳畫面還是偶爾會手癢按個幾下,尤其 Alt 又是大拇指按的,可能我的大拇指特別有力所以最近把 Alt 真的按壞了,我是用青軸的機械式鍵盤,所以每個軸都是獨立的應該是可以更換,但如果是用薄膜式鍵盤呢?那可能只能整把換掉了, 或是交換一下鍵位拿一個平常沒在用的鍵頂替一下,也就是今天要介紹的「Sharpkeys」。 Sharpkeys 官方網站 :  http://www.randyrants.com/category/sharpkeys GitHub :  https://github.com/randyrants/sharpkeys 使用 Sharpkeys 會需要 .NET Framework 4.0,如果還沒有安裝的可以到 微軟官方 下載。 開啟 Sharpkeys 後點選 「Add」 ,左方是選擇 「被重新分配的鍵位」 ,右方是 「替代的鍵位」 ,你也可以按 Type Key 直接用打的讓系統偵測。 像我就做了兩個 Key Mapping,其實就是 Win 鍵和 Alt 鍵互換啦,設定完成後就按「Write to Registry」寫入註冊表, 然後重開機或重新登入就可以生效囉。