akaunting / laravel-firewall

Web Application Firewall (WAF) package for Laravel
https://akaunting.com
MIT License
942 stars 106 forks source link

same ip for all requests #73

Open mnfi3 opened 10 months ago

mnfi3 commented 10 months ago

In some networks the logged ips are same for all users and this cause block all requests for all users.please use below code for getting user ip in your Traits/Helper.php file.

public function ip()
    {
       $client = @$_SERVER['HTTP_CLIENT_IP'];
        $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
        $remote = @$_SERVER['REMOTE_ADDR'];
        if (filter_var($client, FILTER_VALIDATE_IP)) {
            $ip = $client;
        } elseif (filter_var($forward, FILTER_VALIDATE_IP)) {
            $ip = $forward;
        } else {
            $ip = $remote;
        }
        return $ip ?: '0.0.0.0';
    }
MCKLtech commented 10 months ago

+1

I've noticed on some projects, including those that use Cloudflare, that we get the edge IP, not the user IP, and this has caused blocks to other users.