Как подвесить соединение?

Ссылка скопирована
1 ответ

Программа запрашивает соединение по сети на 80 порт, как сделать так чтобы она не получила ответа на свой запрос. Чтобы ей не был дан доступ в сеть, но и не было отказано. Тоесть подвешать её попытку соединения.

Дополнительно:

а зачем?... а то вариантов то может и в достатке..

  • скажем, утоните расклад:
    - внешняя сеть?
    - локалка?
    - корпоратив?
    - в пределах одного компа?
    ... а то везде много вариантов..
  • как сделать так чтобы она не получила ответа на свой запрос

    Ну скажем блокировать входящие от 80-го порта (лучше - от конкретного IP, к которому программа стучится).

  • #,

    в пределах одного компа?

    Да.

  • Deita, ну блин... дефендер позволяет написать правило для проги.. ну не делай мне грустный вечер тупняком...
  • Deita, смотри через панель управления "администрирование".. там что то типа фаервол.. путаюсь между русскими и английскими... все в гуи... а в линуксе пришлось бы правила осмысливать... не.. не грузи глупостями
  • #,

    .. ну не делай мне грустный вечер тупняком... ... не.. не грузи

    может лучше пойти отдохнуть, нет?

  • Deita, ты хоть одно правило дефендера пробовал создавать? )))
    .. а мне да, отдыхать ))
  • #,

    правило дефендера пробовал создавать?

    Да

    Как подвесить соединение?

  • Есть технология tarpit как раз для этого
    Только на винду я такого не нашёл
    Может не на уровне винды а на уровне маршрутизатора подобное есть у вас
  • Ответы:

    Простой способ: настрой фаервол, чтобы молча дропал все пакеты, отправляемые на эту пару адрес-порт.
    Если прога использует HTTP, она отправит SYN-пакет для установки TCP-соединения и будет ждать ответа SYN-ACK, но не дождётся - и почти наверняка соединение отвалится по таймауту. Дольше чем этот таймаут ты соединение не подвесишь.
    Правила фаервола найти в Панель управления - Брандмауэр - Дополнительные параметры - Правила для исходящего подключения, и дальше можно будет создать правило в деталях. Если я правлиьно понимаю, виндовый фаервол как раз и дропает пакеты для запрещённых соединений, а не посылает им явный RST (отказ).

    • Виндовый файрволл по-моему по умолчанию и так блочт все исходящие (по инициативе системы)
    • CityCat4, разве? Он вроде спрашивает для незнакомых программ, дать доступ или не дать.
    • CityCat4, не не не.. исходящие нет. входящие по дефолту все.. а далее "обнаружение", правила.. и тд
    • другой вопрос, настройки очень гибкие. нет проблем написать правило для проги, даже в адрес локал хоста. ну и все в гуи любимых..

    любой бесплатный уровня TinyWall, simplewall и т.п.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

    Для подключения к базе данных в PHP можно использовать различные способы, однако наиболее распространенным и безопасным является использование расширения PDO (PHP Data Objects). Вот пример того, как можно установить соединение с базой данных MySQL с помощью PDO:

    // Параметры для подключения к базе данных
    $host = 'localhost';
    $dbname = 'my_database';
    $username = 'my_username';
    $password = 'my_password';
     
    try {
        // Устанавливаем соединение с базой данных
        $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
     
        // Устанавливаем режим ошибок PDO на исключения
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
        echo "Соединение установлено успешно";
    } catch (PDOException $e) {
        die("Ошибка подключения к базе данных: " . $e->getMessage());
    }

    // Параметры для подключения к базе данных $host = 'localhost'; $dbname = 'my_database'; $username = 'my_username'; $password = 'my_password'; try { // Устанавливаем соединение с базой данных $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); // Устанавливаем режим ошибок PDO на исключения $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Соединение установлено успешно"; } catch (PDOException $e) { die("Ошибка подключения к базе данных: " . $e->getMessage()); }

    В данном примере мы указываем параметры для подключения к базе данных (хост, имя базы данных, имя пользователя и пароль), затем используем конструктор PDO для создания объекта подключения. После этого устанавливаем режим обработки ошибок на исключения, чтобы можно было легче отлавливать их.

    Если подключение будет успешным, то мы выведем сообщение "Соединение установлено успешно". В случае возникновения ошибки подключения, будет выведено сообщение об ошибке.

    Не забудьте заменить параметры подключения на свои собственные (хост, имя базы данных, имя пользователя и пароль) перед использованием этого кода.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно