Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: 資訊學習

產生短網址的 string ID

Posted on 2021 年 8 月 6 日2021 年 8 月 13 日 By 日落 在〈產生短網址的 string ID〉中尚無留言

在約 15 年前有嘗試想要自己做一個縮網址服務 (現在我做加長網址服務 XD),當時用來產生 string ID 的方法有弱點,被學弟抓出來打爆 (可以被預測下一個產生出來的 ID,然後建立 unliminted redirection)。最近摸到 crunch 這個工具,在重新思考以後,終於搞清楚向 ppt.cc 請教時得到的說明是什麼意思。

先說明有問題的作法,先建立 valid characters list,URL 有部份特出字元是 reserve character (RFC3986),所以像是 ?、=、@ 等字元有特殊用途不能被拿來當作參數傳遞,然後做「N 進位」轉成 string ID:

<?php

$char = ['a', 'b', 'c', '.....', '7', '8', '9', '0'];

例如:數字是 1 時,產生出來的 ID 是 a、數字是 116 時產生出來的 ID 是 a1。當時我是依照流水號,所以 ID 是可以被預測的,導致弱點被利用。

當時得到 ptt.cc 的回覆是「先產生完 key 再隨機選取可用的 key」。

這陣子才搞懂這個說明,先用 crunch 之類的工具把所有可用的 string 都先產生出來,然後需要時再隨機選取一個 string 來當作 key/ID 使用。這個作法有些優點:

  • 不需要先產生所有的 key,因為大概可以推算出大概可用的 ID 數量
  • 隨機挑選 key 就無法被猜到未來會被用到的 key,不容易被攻擊

接下來要傷腦筋的,大概就是怎麼樣有效率的從 DB 隨機取 key 了。

ps. 目前使用 3 個 digits,大概就有 20 多萬個 unique string 可用了,爽。

Tags:資訊學習

一般感冒與流行性感冒 (流感) 的差異

Posted on 2019 年 11 月 1 日2021 年 3 月 12 日 By 日落 在〈一般感冒與流行性感冒 (流感) 的差異〉中尚無留言

這幾天被感冒的一些病狀搞到實在很不舒服,誰身酸痛不說,喉嚨雖然沒有很痛,但整個乾得很難說話。

另外就是整個體力下降,本來要去公司撐的一、二天,結果出門時發現連機車都快牽不動,只好乖乖請假在家。

在網路上找到了一些區分一般感冒與流行性感冒 (流感) 差異的說明,簡單練出幾個差異比較大的症狀,如下 (Blogger 居然不支援畫表格 ….QQ):

節錄,詳細內容請看「蒼藍鴿的醫學天地」

影片:感冒?流感? 差別到底是什麼!?

症狀 一般感冒 流感
影響範圍 呼吸道局部症狀 全身性
發病速度 突發、漸進式 突發性
發病症狀 喉嚨痛、打噴嚏、流鼻涕 喉嚨痛、肌肉酸痛、倦怠
發燒 少發燒、或僅體溫稍微升高 發高燒

ps. 感謝 emmet 贊助畫表格 QQ

這次自己判斷可能還沒有到流感,暫時請狂睡,外加補充水份和維他命,希望週末、週日就可以恢復正常。

另外也感謝同事幫我把工作 hold 住,不然我應該會掛彩吧

Tags:生活雜記, 資訊學習

「耐心的溝通絕對比鬥爭更好」

Posted on 2018 年 11 月 6 日2021 年 3 月 12 日 By 日落 在〈「耐心的溝通絕對比鬥爭更好」〉中尚無留言

在雨蒼的 Medium 看到的文章「我們該如何反思並使黑客文化更好?從Linus變得有禮貌開始說起」:
推廣理念,耐心的溝通絕對比鬥爭更好,也更能爭取到支持與理解。

有衝突 (conflict) 表示有不同的意見、不同的解決方案,有多個不同的解決方案是好事,但並不是每個方案都適合鎖情況。魚與熊掌不可兼得,只能找到當下較為適合的方案來使用,所以需要溝通、討論,了解每種方案的優缺點。

Tags:協作, 資訊學習

HiNet 宣佈年底關閉 Proxy 服務

Posted on 2018 年 9 月 17 日2021 年 3 月 12 日 By 日落 在〈HiNet 宣佈年底關閉 Proxy 服務〉中尚無留言

看到 Hinet 宣佈 2018 年底中止 Proxy 服務,另外看到 gslin 的文章說「網站都走 HTTPS 的情況下,Proxy 服務能帶來的好處愈來愈少了」,當下想不出來為什麼。

查了一下資料恍然大悟。HTTPS 主要目的就是希望所有的網路資料傳輸不會被中間人 (MITM) 竊聽,當然這個和 proxy 的目的剛好互斥,proxy 的行為就是做中間人並協助將常用檔案儲存起來讓你下次使用時可以快速取得。所以走 HTTPS 的話資料是不會進 proxy 做快取的。

ref:

  • HTTPS connections over proxy servers
    https://stackoverflow.com/questions/516323/https-connections-over-proxy-servers
Tags:資訊學習

防止搜尋引擎顯示敏感資訊

Posted on 2018 年 9 月 4 日2021 年 3 月 12 日 By 日落 在〈防止搜尋引擎顯示敏感資訊〉中尚無留言

Google 搜尋引擎提供了強大的功能,讓使用者可以快速的找到需要的資料。所有事物都有雙面刃的特性,也因此有人使用他來做惡意行為,像是搜尋個人隱私資訊、帳號密碼、網站架構、特定檔案等。

圖一:透過關鍵字和「filetype」搜尋到的聯絡人資訊
圖二:Google 也可找到一些可下載的檔案

早在 10 年前,我就使用這些搜尋技巧在網路上搜尋可用的電子書以及其他資料,只是已意外的到現在還有這麼多網站有安全問題。


透過 robots.txt 告知搜尋引擎不要建立索引

搜尋引擎除了造訪各個網頁,並儲存網頁內容以外,會先參考網站根目錄的「robots.txt」檔案,此檔案主要目的是告訴搜尋引擎哪一些路徑不應該被建立索引、不該被搜尋:

  • 瞭解 robots.txt 檔案
  • 建立 robots.txt 檔案
通常會設定為:
User-agent: *
Allow: /
Disallow: /upload/
Disallow: /download/
Disallow: /file/

但要注意:並不是所有搜尋引擎都會按照你預期的方式處理。

同樣的,由於雙面刃的特性,當惡意使用者發現 robots.txt 中有「Disallow」的項目,就可以猜得到這些目錄有敏感資料,進而特別去分析這些目錄的用途。

目錄加上 HTTP basic auth

這個作法很簡單,搜尋引擎造訪網頁時沒有帳號、密碼,無法讀取資料,也就沒辦法對網頁內容建立索引供使用者搜尋。

  • How To Set Up Password Authentication with Apache on Ubuntu 16.04
  • How To Set Up Password Authentication with Nginx on Ubuntu 14.04

透過防火牆阻擋擋搜尋引擎

若有注意的話,你可以在 HTTP server log 中看到 user agent 的資訊,例如:

 .... Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

順著 user agent 的提示,你應該會發現多數的搜尋引擎 bot 都會有關鍵字,且有些搜尋引擎服務甚至會告知 bot 所使用的 IP。透過這些設定,設定防火牆或其存取規則,來阻擋搜尋引擎讀取特定網頁。

ps. 十多年前,百度的 bot 會在一秒內同時送出數十個 HTTP request 來檢索網頁,導致機器被DoS。後來不爽把所有中國網段全部用防火牆給擋了 … Orz

Tags:生活雜記, 資訊學習

文章分頁

上一頁 1 2 3 ... 52 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.