§IP 篩選器
Play 提供了一個 IP 篩選器,它可以根據請求的 IP 位址允許或拒絕存取資源,並使用白名單和黑名單進行設定。
§啟用 IP 篩選器
若要啟用 IP 篩選器,請將其新增至 application.conf
play.filters.enabled += play.filters.ip.IPFilter
§白名單 IP 位址
如果非空,只有當請求的 IP 位址存在於白名單中時,才會允許該請求。
# IPv4 and IPv6 adresses allowed in different notations
play.filters.ip.whiteList = [ "192.168.0.1", "8f:f3b:0:0:0:0:0:ff", "2001:cdba::3257:9652", "2001:cdba:0000:0000:0000:0000:3257:9653" ]
§黑名單 IP 位址
只有當白名單為空時,黑名單才會啟用。如果非空,只有當請求的 IP 位址存在於黑名單中時,才會拒絕該請求。
# The black list is only active if the whitelist is empty,
# otherwise it will be ignored.
# IPv4 and IPv6 adresses allowed in different notations
play.filters.ip.blackList = [ "192.168.0.1", "8f:f3b:0:0:0:0:0:ff", "2001:cdba::3257:9652", "2001:cdba:0000:0000:0000:0000:3257:9653" ]
§HTTP 狀態碼
IP 篩選器封鎖的禁止請求的預設 HTTP 狀態碼為 403 Forbidden
。
您可以使用下列設定自訂傳回的 HTTP 狀態
# 401 Unauthorized
play.filters.ip.accessDeniedHttpStatusCode = 401
§使用路由修改器選擇性停用篩選器
當使用 Play 附帶的預設設定,且您已定義白名單或黑名單時,IP 篩選器會檢查每個請求的 IP。可能會有個別路由不希望套用篩選器,而 anyip
路由修改器可在此處使用,並使用 路由修改器語法。
在您的 conf/routes
檔案中
+ anyip
GET /path1 controllers.HomeController.myAction
這會將 GET /path1
路由排除在 IP 篩選器之外,無論 IP 是否在白名單或黑名單中,都會永遠允許存取該路由。
IP 篩選器可用的完整設定範圍可在 Play Filters reference.conf
中找到。正如您在這個參考設定中所見,您也可以透過定義僅限路由修改器黑名單來反轉路由修改器行為,這表示預設所有路由都是允許的,只有特定路由會透過引入例如 checkip
黑名單路由修改器進行檢查。
下一步:使用模組擴充 Play
在此文件發現錯誤?此頁面的原始碼可以在 這裡 找到。在閱讀 文件指南 後,請隨時貢獻一個拉取請求。有問題或建議要分享嗎?前往 我們的社群論壇 與社群展開對話。