[科比教室]逃避雖可恥但有用?加強網站安全小撇步

  • Home
  • 科比教室
  • [科比教室]逃避雖可恥但有用?加強網站安全小撇步

過去多年來,我們的客戶網站申辦服務多年後,很常遇到以下情況:網站幾年前找人設計,已經沒有人在維護。或者網站用Wordpress架設,用了付費的外觀,但沒有付費更新。簡單來講,就是網站很多年沒有更新,結果就是出現滿滿的漏洞。這個情況在基於Wordpress這樣的開源軟體開發的網站十分常見,並不是我們的防火牆沒有效,而是就算有WAF也不代表能夠擋下所有的Injection。

我們提出的「小撇步」概念是,封鎖海外IP的「POST」動作,但保留海外IP的「GET」權限,這樣可以達到海外訪客仍然能訪問網站但不能入侵網站的效果。方案原意是「臨時性」操作,在處理好網站漏洞後就可以移除,然而網站管理者也可以選擇永久套用,看個人需求。教學開始前再打一次預防針,網絡沒有100%安全,只有相對安全,這個方案假設大部份入侵IP都來自海外,但不能排除本地IP入侵的可能性(就我們觀察,比例的確少很多)。

適用這個方案的網站:

  1. 網站很久沒有更新,純粹公司的介紹網站,或者一般部落客。
  2. 網站設有聯絡表單,不斷收到垃圾訊息(應該是表單沒有防垃圾訊息,像recaptcha的機制),而您不知怎樣處理,同時又接受表單可以封鎖海外訪客提交。
  3. 開源網站軟體如Wordpress,已知有漏洞,但未找到源頭,例如Wordpress 不能升級(升級後插件不能用,但插件已經沒有更新)。

不適用這個方案的網站:

  1. 購物車網站,尤其接受海外訪客購買的網站,因為購買動作涉及「POST」動作,套用方案後會導致不能使用網站購物。
  2. 有連接第三方海外服務的網站,理論上可以透過白名單IP處理,但因為想簡化教學,這個部份有需要建議自己研究一下,如果是我們的客戶可以聯絡我們尋求協助。 

限制海外IP方法一(使用.htaccess):

  1. 進入網站 https://www.ip2location.com/free/visitor-blocker (需要註冊)
  2. 在Download List 輸入Taiwan(如果需要給更多地區進行POST動作,可以多加幾個,但限制的意義就會減少),Output Format選”Apache 2.4 .htaccess allow”

  3. 下載後將頭尾的<RequireAny></RequireAny>改成<LIMIT POST></LIMIT>,像下方這樣

    <LIMIT POST>
    Require ip 192.168.1.0/24​
    </LIMIT>

  4. 將檔案名稱改成 .htaccess,然後上傳到public_html內即可(如果本身已經有.htaccess,請將檔案代碼粘貼到現有.htaccess檔案的下方),這樣就完成。
    (方案應該適用於Apache及Litespeed,Openlitespeed的話可能需要重啟服務一次才會新效)

限制海外IP方法二(使用Cloudflare):

  1. Cloudflare的話非常簡單,在Security > WAF內,直接加入「不在台灣」的POST動作就可以了。(Action 選”Managed Challenge”或者”Block”都可以)

發佈留言