APIacFilterIPWhitelist
An APIac.Filter plug enabling IP whitelist (IPv4 & IPv6)
Installation
def deps do
[
{:apiac_filter_ip_whitelist, "~> 1.0"},
]
end
Plug options
whitelist: a list of allowed IPv4 and IPv6 addresses in CIDR notation or a(Plug.Conn.t -> [String])function returning that list of addressesexec_cond: a(Plug.Conn.t() -> boolean())function that determines whether this filter is to be executed or not. Defaults tofn _ -> true endsend_error_response: function called when IP address is not whitelisted. Defaults toAPIacFilterIPWhitelist.send_error_response/3error_response_verbosity: one of:debug,:normalor:minimal. Defaults to:normal
Example
plug APIacFilterIPWhitelist, whitelist: [
"192.168.13.0/24",
"2001:45B8:991A::/48",
"23.12.0.0/16",
"20E7:4128:D4F0:0::/64",
"91.23.251.0/24"
]
Security considerations
This plug uses the remote_ip field of the Plug.Conn.t for IP filtering, which means:
- do use
remote_ipor a similar library if you're behind a proxy - do not use
remote_ipor a similar library if you're not behind a proxy