設定Apache以用戶憑證(Client CA)的方式進行訪客驗證

在使用Apache管理網頁服務時,有時會遇到希望可以設定某些網頁服務是只有經過授權的人才能存取

常見的做法是可以利用Apache跳出提示輸入帳密提示框後,成功登入者才能進行下一步訪問

今天我們要來講講第二種做法:

發憑證給授權的使用者,並且在每次訪客訪問網站時驗證訪客提交的憑證是否為我方發行無變造過的

確認無誤才準放行進行下一步訪問,如果沒有憑證或憑證沒有通過驗證者都一律拒於門外

 
使用用戶憑證(Client CA)的方式進行訪客驗證就好像使用SSH Key登入SSH的概念,不用再多背一組帳密

而且因為是使用憑證,他的安全性遠高於帳密

想想假設今天一個網站使用帳密進行驗證,積極一點的駭客會使用暴力破解或字典檔想設法去猜中帳密

但如果今天使用憑證進行驗證,是不是就算再積極也無從下手了呢

 

步驟

要設定Apache以用戶憑證(Client CA)的方式進行訪客驗證有三個步驟要做:

  • 產生用戶憑證檔與憑證私鑰
  • 轉換成pfx格式
  • 修改Apache的設定檔強制驗證訪客提供的憑證

以下我就拿自己的phpMyAdmin資料庫後台網頁進行示範,設定只有持有合格的用戶憑證者才能存取 閱讀更多

[Python] 基於KNN演算法的臉部辨識

最近在讀機器學習classfication跟cluster的演算法,就想找些有趣的例子來實做看看

於是這篇就誕生了:使用KNN(K Nearest Neighbor)近鄰演算法實作的臉部辨識

話不多說,先來張最終辨識的成果圖:

 

KNN(K Nearest Neighbor)簡介

KNN是一種近鄰分類演算法,核心概念就是給定k值,然後要被分類的點x就會尋找最近的k個點,看這k個點中哪個種類佔大多數,則該點x即會被歸為此類

例如這張從維基百科抓的示意圖k=3,在最近的三個點中紅色佔大多數,所以綠色將會被歸類為紅色

但有趣的是,假如k=5,則藍色的數量又比紅色多,所以綠色將會被歸類為藍色

因此k值的挑選也是一門學問

閱讀更多

用TensorFlow+Keras訓練辨識驗證碼的CNN模型

大學選課系統自動填入驗證碼 這篇介紹了如何利用驗證碼語音播放功能的bug來填入驗證碼

本篇就來實作看看利用近年來很熱門的卷積神經網路(CNN)學習並辨識驗證碼

驗證碼示意圖:

 

安裝所需的套件

在開始前我們會用到以下套件,這是我在寫本篇親測可正確執行的版本組合

MacOS 10.14.6
Python: 3.7.3
numpy: 1.18.0
scikit-learn: 0.22
TensorFlow: 2.0.0
Pillow: 6.2.1

如果有缺少的可以使用pip來安裝

NumPy: pip install numpy
scikit-learn: pip install scikit-learn
TensorFlow: pip install tensorflow
Pillow: pip install Pillow

閱讀更多

大學選課系統自動填入驗證碼

大學生涯最後一次搶課結束了,來分享一下歷年搶課的技巧:)

自動填入學號、密碼這個瀏覽器的通常都有選項可以幫我們記憶

所以今天的主題是驗證碼的部份,如何自動填入驗證碼

 

我們學校的選課登入頁長這樣,以前是沒有驗證碼需要填的

但我印象從106學年度起,學校可能是為了舒緩伺服器瞬間的高流量

用驗證碼這種方式來卡一部份的人潮降低伺服器的負載 (什麼歪理,為什麼不升級伺服器配備 ((怒~

沒關係,道高一尺魔高一丈,搶課的時間分秒必爭,我們總得想個辦法秒殺掉驗證碼

於是經過百般研究這個登入頁面後,終於發現驗證碼圖示旁邊的語音播放按鈕藏有玄機


閱讀更多

FFmpeg串接多個影片

用攝影機拍攝影片時,影片檔案大小超過4GB會被自動切成不同檔案(因應FAT32的單一檔案大小上限),所以拿到電腦上觀看時就有了串接影片的需求

但是就只是純粹串切影片而已,開Ae、Pr等等軟體實在是太大材小用了,這時FFmpeg就會是一個不錯的選擇

 
首先,把要串接的影片放到同一資料夾,並且創建一個clips.txt檔案

clips.txt裡面依序列出要串接的檔案

file 'first.mp4'
file 'second.mp4'
...

最後,只要執行以下指令就可以得到名為output.mp4串接好的檔案了

ffmpeg -f concat -i clips.txt -c copy output.mp4