• Данный материал предоставлен сайтом исключительно в ознакомительных целях.
    Администрация не несет ответственности за его содержимое. По всем жалобам пишите на почту abusevhguru@yandex.ru

Помощь {"msg":"Error check IP!","type":"error"} FreeKassa оповещения URL

ku6a1

Новичок
Сообщения
14
Реакции
0

ku6a1

  • 14
  • 0
Вот такое выдаёт при загрузки result/freekassa {"msg":"Error check IP!","type":"error"} FreeKassa оповещения URL

Кто знает как решить?
 

Nowman

Premium
Сообщения
265
Реакции
133

Nowman

  • 265
  • 133
Обратите внимание, пользователь заблокирован. Крайне не рекомендуем заключать сделки с этим пользователем,
Бро, ну ты молодец, ща мы угадаем, как ты писал обработчик и скажем тебе ответ)
 

VsemFak

Легенда
Сообщения
1,227
Реакции
824

VsemFak

  • 1,227
  • 824
Запрос не проходит ip валидацию, проксирование через cloudflare или какойнибудь кэш, антиддос сервис стоит?
 

R3spawn

Легенда
Сообщения
881
Реакции
1,307

R3spawn

  • 881
  • 1,307


Код:
function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '136.243.38.108'))) {
die("hacking attempt!");
}
что-то такое есть?
так или иначе все запросы идут от твоего сервера, а не через прокси cloudflare
 

Toxic

Свой Человек
Сообщения
549
Реакции
256

Toxic

  • 549
  • 256


Код:
function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '136.243.38.108'))) {
die("hacking attempt!");
}
что-то такое есть?
так или иначе все запросы идут от твоего сервера, а не через прокси cloudflare
Да, во всех скриптах такое уже есть
 

ku6a1

Новичок
Сообщения
14
Реакции
0

ku6a1

  • 14
  • 0


Код:
function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '136.243.38.108'))) {
die("hacking attempt!");
}
что-то такое есть?
так или иначе все запросы идут от твоего сервера, а не через прокси cloudflare
Да вот


Код:
public function resultFK(Request $r) {
        $ip = false;
        if(isset($_SERVER['HTTP_X_REAL_IP'])) {
            $ip = $this->getIpFK($_SERVER['HTTP_X_REAL_IP']);
        } else {
            $ip = $this->getIpFK($_SERVER['REMOTE_ADDR']);
        }
        if(!$ip) return ['msg' => 'Error check IP!', 'type' => 'error'];
        
        $order = $this->chechOrder($r->get('MERCHANT_ORDER_ID'), $r->get('AMOUNT'));
        if($order['type'] == 'error') return ['msg' => $order['msg'], 'type' => 'error'];
        
        $user = User::where('user_id', $r->get('us_uid'))->first();
        if(!$user) return ['msg' => 'User not found!', 'type' => 'error'];
        
        /* ADD Balance from user and partner */
        $sum = $r->get('AMOUNT');
        
        $this->settings->profit_money += round($sum/$this->settings->profit_koef, 2);
        $this->settings->save();
        
        if($this->settings->dep_bonus_min > 0 && $sum >= $this->settings->dep_bonus_min) {
            $sum = round($sum + ($sum/100)*$this->settings->dep_bonus_perc, 2);
            
            Profit::create([
                'game' => 'ref',
                'sum' => -(($sum/100)*$this->settings->dep_bonus_perc)
            ]);
        }
        
        
        User::where('user_id', $user->user_id)->update([
            'balance' => $user->balance+$sum
        ]);
        
        Payments::where('order_id', $r->get('MERCHANT_ORDER_ID'))->update([
            'status' => 1
        ]);
        
        /* SUCCESS REDIRECT */
        return ['msg' => 'Your order #'.$r->get('MERCHANT_ORDER_ID').' has been paid successfully!', 'type' => 'success'];
    }
    
    private function chechOrder($id, $sum) {
        $merch = Payments::where('order_id', $id)->first();
        if(!$merch) return ['msg' => 'Order checked!', 'type' => 'success'];
        if($sum != $merch->sum) return ['msg' => 'You paid another order!', 'type' => 'error'];
        if($merch->order_id == $id && $merch->status == 1) return ['msg' => 'Order alredy paid!', 'type' => 'error'];
        
        return ['msg' => 'Order checked!', 'type' => 'success'];
    }
    
    function getIpFK($ip) {
        $list = ['136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '88.198.88.98', '37.1.14.226', '136.243.38.108', '80.71.252.10'];
        for($i = 0; $i < count($list); $i++) {
            if($list[$i] == $ip) return true;
        }
        return false;
    }
 

VsemFak

Легенда
Сообщения
1,227
Реакции
824

VsemFak

  • 1,227
  • 824
Во первых тебе нужно выяснить почему IP с которого приходит уведомление не соответствует тем что у тебя в массиве.
Уверен это из-за проксирования от клаудфлейр или какого нибудь антиддос сервиса
Во вторых у тебя много лишних ip адресов, это не безопасно
$list = ['136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '88.198.88.98', '37.1.14.226', '136.243.38.108', '80.71.252.10'];

Добавь только те которые написаны в api фрикассы.
 

ku6a1

Новичок
Сообщения
14
Реакции
0

ku6a1

  • 14
  • 0
Во первых тебе нужно выяснить почему IP с которого приходит уведомление не соответствует тем что у тебя в массиве.
Уверен это из-за проксирования от клаудфлейр или какого нибудь антиддос сервиса
Во вторых у тебя много лишних ip адресов, это не безопасно
$list = ['136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '88.198.88.98', '37.1.14.226', '136.243.38.108', '80.71.252.10'];

Добавь только те которые написаны в api фрикассы.
Пробовал прописывать ip только из ip freekassa, не помогло.
Так же пробовал без ssl ставить, тоже самое пишет.
 

VsemFak

Легенда
Сообщения
1,227
Реакции
824

VsemFak

  • 1,227
  • 824


Код:
function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '136.243.38.108'))) {
die("hacking attempt!");
}
что-то такое есть?
так или иначе все запросы идут от твоего сервера, а не через прокси cloudflare
не ОТ а К его серверу. И таки через прокси cloudflare
 

ViktorHaze

Местный
Сообщения
100
Реакции
45

ViktorHaze

  • 100
  • 45
Все потому что (скорее всего), CloudFlare никогда не возвращает реальный IP конечного пользователя. Ведь весь трафик проксируется через CloudFlare и
HTTP_X_REAL_IP/REMOTE_ADDR возвращает IP текущего подключения CloudFlare. CF специально в заголовке HTTP_CF_CONNECTING_IP отправляет НАСТОЯЩИЙ IP клиента, с которого идет запрос.
 

VsemFak

Легенда
Сообщения
1,227
Реакции
824

VsemFak

  • 1,227
  • 824
Все потому что (скорее всего), CloudFlare никогда не возвращает реальный IP конечного пользователя. Ведь весь трафик проксируется через CloudFlare и
HTTP_X_REAL_IP/REMOTE_ADDR возвращает IP текущего подключения CloudFlare. CF специально в заголовке HTTP_CF_CONNECTING_IP отправляет НАСТОЯЩИЙ IP клиента, с которого идет запрос.
Я ему это 2 раза это тут написал и раз 5 в телеграме. Сложный ТС
Кстати этот заголовок подделать можно, по этому вопрос безопасности остается открытым.
По этому можно просто закомментировать проверку по IP.

Правильным вариантом будет сделать второй сервер для API без проксирования от CF, сделать поддомен api.site.com и туда слать уведомления, вопрос только в том разрешит ли платежная система слать уведомления на поддомен.
 
Последнее редактирование:
Сверху