APIacFilterIPBlacklist
An APIac.Filter plug enabling IP blacklist (IPv4 & IPv6)
Installation
def deps do
[
{:apiac_filter_ip_blacklist, "~> 1.0"}
]
endPlug options
blacklist: a list of banned 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 blacklisted. Defaults toAPIacFilterIPBlacklist.send_error_response/3error_response_verbosity: one of:debug,:normalor:minimal. Defaults to:normal
Example
plug APIacFilterIPBlacklist, blacklist: [
"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