查看源代码 mod_security 行为 (inets v9.3.1)

安全审计和追踪功能

概要

回调

每当 mod_security Erlang Web 服务器 API 模块中发生事件时,都会调用 event/4event/5。(如果 Address 未定义,则调用 event/4,否则调用 event/5。)参数 What 指定发生的事件类型,是以下原因之一

函数

block_user/4block_user/5 都将用户 User 从目录 Dir 阻止访问指定的时间。

list_auth_users/1list_auth_users/2list_auth_users/3 都返回当前已验证用户的列表。身份验证信息存储 SecurityAuthTimeout 秒后被丢弃。

unblock_user/2unblock_user/3unblock_user/4 都将用户 UserPort(和 Dir)的被阻止用户列表中删除。

回调

链接到此回调

event(What, Port, Dir, Data)

查看源代码 (自 OTP 18.1 起)
-callback event(What, Port, Dir, Data) -> term()
                   when
                       What :: auth_fail | user_block | user_unblock,
                       Port :: integer(),
                       Dir :: string(),
                       Data :: [Info],
                       Info :: {Name :: term(), Value :: term()}.
链接到此回调

event(What, Address, Port, Dir, Data)

查看源代码 (自 OTP 18.1 起)
-callback event(What, Address, Port, Dir, Data) -> term()
                   when
                       What :: auth_fail | user_block | user_unblock,
                       Port :: integer(),
                       Address :: inet:ip4_address() | inet:ip6_address() | string(),
                       Dir :: string(),
                       Data :: [Info],
                       Info :: {Name :: term(), Value :: term()}.

每当 mod_security Erlang Web 服务器 API 模块中发生事件时,都会调用 event/4event/5。(如果 Address 未定义,则调用 event/4,否则调用 event/5。)参数 What 指定发生的事件类型,是以下原因之一

  • auth_fail - 用户身份验证失败。

  • user_block - 用户被阻止访问。

  • user_unblock - 用户从阻止列表中删除。

注意

当使用 unblock_user 函数显式地从阻止列表中删除用户时,不会触发事件 user_unblock

函数

链接到此函数

block_user(User, Port, Dir, Seconds)

查看源代码
-spec block_user(User, Port, Dir, Seconds) -> true | {error, Reason}
                    when
                        User :: string(),
                        Port :: inet:port_number(),
                        Dir :: string(),
                        Seconds :: non_neg_integer() | infinity,
                        Reason :: no_such_directory.

等同于 block_user/5

链接到此函数

block_user(User, Address, Port, Dir, Seconds)

查看源代码
-spec block_user(User, Address, Port, Dir, Seconds) -> true | {error, Reason}
                    when
                        User :: string(),
                        Port :: inet:port_number(),
                        Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                        Dir :: string(),
                        Seconds :: non_neg_integer() | infinity,
                        Reason :: no_such_directory.

block_user/4block_user/5 都将用户 User 从目录 Dir 阻止访问指定的时间。

-spec list_auth_users(Port) -> Users | [] when Port :: inet:port_number(), Users :: [string()].

等同于 list_auth_users/3

-spec list_auth_users(Port, Directory) -> Users | []
                         when Port :: inet:port_number(), Directory :: string(), Users :: [string()];
                     (Address, Port) -> Users | []
                         when
                             Port :: inet:port_number(),
                             Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                             Users :: [string()].

等同于 list_auth_users/3

链接到此函数

list_auth_users(Address, Port, Dir)

查看源代码
-spec list_auth_users(Address, Port, Dir) -> Users | []
                         when
                             Port :: inet:port_number(),
                             Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                             Dir :: string(),
                             Users :: [string()].

list_auth_users/1list_auth_users/2list_auth_users/3 都返回当前已验证用户的列表。身份验证信息存储 SecurityAuthTimeout 秒后被丢弃。

链接到此函数

list_blocked_users(Port)

查看源代码
-spec list_blocked_users(Port) -> Users | []
                            when
                                Port :: integer(),
                                Users :: [{blocked_user, term(), term(), term(), term()}].

等同于 list_blocked_users/3

-spec list_blocked_users(Port, Directory) -> Users | []
                            when
                                Port :: integer(),
                                Directory :: string(),
                                Users :: [{blocked_user, term(), term(), term(), term()}];
                        (Address, Port) -> Users | []
                            when
                                Port :: integer(),
                                Address ::
                                    inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                Users :: [{blocked_user, term(), term(), term(), term()}].

等同于 list_blocked_users/3

链接到此函数

list_blocked_users(Address, Port, Dir)

查看源代码
-spec list_blocked_users(Address, Port, Dir) -> Users | []
                            when
                                Port :: integer(),
                                Address ::
                                    inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                Dir :: string(),
                                Users :: [{blocked_user, term(), term(), term(), term()}].

list_blocked_users/1list_blocked_users/2list_blocked_users/3 都返回当前被阻止访问的用户列表。

链接到此函数

unblock_user(User, Port)

查看源代码
-spec unblock_user(User, Port) -> true | {error, Reason}
                      when User :: string(), Port :: integer(), Reason :: term().

等同于 unblock_user/4

-spec unblock_user(User, Port, Directory) -> true | {error, Reason}
                      when User :: string(), Port :: integer(), Directory :: string(), Reason :: term();
                  (User, Address, Port) -> true | {error, Reason}
                      when
                          User :: string(),
                          Port :: integer(),
                          Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                          Reason :: term().

等同于 unblock_user/4

链接到此函数

unblock_user(User, Address, Port, Dir)

查看源代码
-spec unblock_user(User, Address, Port, Dir) -> true | {error, Reason}
                      when
                          User :: string(),
                          Port :: integer(),
                          Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                          Dir :: string(),
                          Reason :: term().

unblock_user/2unblock_user/3unblock_user/4 都将用户 UserPort(和 Dir)的被阻止用户列表中删除。