A user can easily evade a ban on his +x host, by logging in after joining. The user still cannot speak on the channel that way, unless he gets voiced or opped, but the user is still on the channel while he should not be there. The ban evasion is even less obvious when the user does not set usermode +x.
Perhaps the IRCd could check the bans when a local user gets an account set, only considering his nick!user@x-host mask to see if that matches a ban, and if found, kick the user, for example with reason 'Account Rider'. Perhaps only consider channels where the user is not voiced and not opped. While ban checking does put the IRCd under more strain, the bans would have to be checked (all of them) later on when the client attempts to send to the channel.
Log in to post a comment.