前陣子決定要找部落格的圖床,再加上 Blogger 開始支援 HTTPS,最後決定花點小錢,直接使用 AWS s3 + cloudFront 來當作圖床。
沒錯,流量小的時候的確是只要花一點小錢,但是哪天誤會被 DDoS、圖片被有名網站盜連,這就不是錢錢可以解決的事情了。
「盜連」這個動作在英文是「Hotlinking」,搜尋了一下發現 AWS 可以透過 CloudFront + WAF 的輔助,完成防止盜連的功能:How to Prevent Hotlinking by Using AWS WAF, Amazon CloudFront, and Referer Checking。
主要是使用 HTTP header 中的 referer 來做來源檢查,設定可參考下圖。
圖一:先去 CloudFront 察看正常會使用到圖片的平台
圖二:在 WAF 建立規則
這樣大致上就可以解決圖片盜連的問題了。
但,AWS WAF 的定價可不便宜,一個 web ACL 定價是每個月 5 USD,也就是說如果圖片每個月被存取的次數沒有超過 400 次以上,其實用了 WAF 反而費用較高。就請大家自行衡量了。