Задать вопрос
  • Как сделать FTP прокси?

    FTP не передает заголовок Host: или чего-то аналогичного, поэтому иметь на одном IP/порту несколько виртуальных FTP-серверов невозможно, надо их разносить по IP или портам или передавать имя хоста в имени пользователя.
    В остальном проблем с проксированием FTP нет, например в 3proxy

    allow * * internal_host1 20-21,1024-65535
    ftppr -hinternal_host1:21 -iexternal_ip -p2101
    flush
    allow * * internal_host2 20-21,1024-65535
    ftppr -hinternal_host2:21 -iexternal_ip -p2102
    flush
    allow * * internal_host3 20-21,1024-65535
    ftppr -hinternal_host3:21 -iexternal_ip -p2103
    flush
    ...
    проксирует FTP с порта external_ip:2021 на internal_host1, 2022 на internal_host2, 2023 на internal_host3

    либо там же можно проксировать по имени пользователя:

    allow * * internal_host1,internal_host2,internal_host3 20-21,1024-65535
    ftppr -iexternal_ip -p21

    будет проксировать пользователя с именем user@internal_host1 на internal_host1, user@internal_host2 на internal_host2 и т.д.
    Ответ написан
    Комментировать
  • Почему письма с формы обратной связи перестали приходить?

    Вы пытаетесь отправить письмо с чужим From: (домен ya.ru) без авторизации.
    Используйте в качестве адреса отправителя адрес своего домена, настройте для него SPF и DKIM авторизующие ваши письма.
    Ответ написан
    Комментировать
  • Почему в адресате "Кому" не мой email?

    В заголовках письма может быть почти все, что угодно, письмо доставляется не по ним.
    Подобные письма можно создавать вполне легально - вы можете в поле получателя (To:) поместить произвольный адрес, в поле слепой копии (Bcc:) свой, получателей слепой копии не видно в списке получателей.

    P.S. в GMail это называется скрытой копией.
    Ответ написан
    Комментировать
  • Как считать два байта числа?

    Красиво и универсально никак, наиболее совместимый способ примерно такой:

    #include <stdint.h>
    #if defined (__WIN32__)
    #include <Winsock2.h>
    #else
    #include <arpa/inet.h>
    #endif
    
    uint16_t read_16(FILE * f)
    {
        uint16_t ui16;
        fread(&ui16, 1, 2, f);
        return ntohs(ui16);
    }
    
    uint32_t read_32(FILE * f)
    {
        uint32_t ui32;
        fread(&ui32, 1, 4, f);
        return ntohl(ui32);
    }
    Ответ написан
    Комментировать
  • Чем отличается динамическая библиотека от статической?

    Статическая библиотека это фактически архив объектных файлов, который используется в процессе статической линковки. В результате статической линковки из многих объектных файлов получается один исполняемый, запускается статическая линковка в момент создания исполняемого файла.

    Динамическая библиотека это фактически исполняемый файл (т.е. DLL и EXE в Windows имеют одинаковый формат). Динамическая линковка запускается в момент создания процесса (когда вы запускаете исполняемый файл на выполнение), линкуются между собой несколько исполняемых файлов каждый раз, когда создается новый процесс. Так же возможна динамическая линковка уже после запуска, т.е. новая библиотека может быть подгружена в адресное пространство ужа работающего процесса.

    Сделать из статической библиотеки динамическую в принципе можно - необходимо ее (статически) слинковать в динамическую библиотеку, при этом будет создана динамическая библиотека и статическая стаб-библиотека, которую можно использовать в проекте вместо статической библиотеки, чтобы вызывать функции из динамической библиотеки.
    Ответ написан
    9 комментариев
  • Работают ли спам рассылки на почту и по формам сайта?

    Объявления по форумам чаще вешаются не столько для людей, сколько для поисковых роботов, чтобы раскрутить сайт в поисковой выдаче. Вешайте капчу, делайте так, чтобы ссылки показывались только зарегистрированным пользователям.
    Ответ написан
    Комментировать
  • Как работает этот код?

    Кто-то что-то путает, т.к. для этого кода надо, чтобы было выделено 60 байт, скорей всего выделяется 64.
    Этот код берет байтовый массив
    |00|01|02|..|56|57|58|59|
    берет из него по 4 байта и над группой из 4х байт выполняет преобразование, ксоря в этой группе все биты с r кроме определенного. Затем сдвигается на 8 байт, берет следующие 4 байта и т.д.
    Ответ написан
    Комментировать
  • Где быстрее всего зарегистрировать освобождающийся .ru домен?

    Зарегистрировать быстрее всего у текущего регистратора домена, причем делать это надо заранее. Регистраторы обычно устраивают аукционы на освобождающиеся домены, например:
    https://www.nic.ru/auction/forbuyer/buy_vac.shtml#...
    https://www.reg.ru/domain/new/rereg
    https://2domains.ru/rereg.php
    https://www.webnames.ru/auction/closing.pl?searchs...
    есть и аггрегаторы:
    expired.ru
    Ответ написан
    Комментировать
  • Провайдер может расшифровать HTTPS трафик? Если нет, то не понятно что они будут хранить по закону Яровой?

    При использовании протоколов шифрования с PFS
    https://ru.wikipedia.org/wiki/Perfect_forward_secrecy
    (в TLS 1.3 другие протоколы не будет поддерживаться в принципе) пассивная дешифровка трафика невозможна, даже если известен секретный ключ. Трафик можно перехватывать только в активном режиме, подменяя сертификат.
    Ответ написан
  • Зачем IT гиганты используют много несвязанных доменов?

    Поместив HTML, XML, SVG и т.д. и т.п. файл на домене usercontent.google.com можно
    манипулировать куками домена google.com и фишить. Поэтому пользовательский контент всегда отдается с отдельных sandbox-доменов.
    Так же с отдельных доменов обычно отдается статический контент, это позволяет использовать CDN и упрощает управление кэшированием.
    Отдельный домен обычно используется для PTR-записей (например 1e100.net). Для PTR часто нужна двойная валидация, т.е. PTR должна разрешаться в имя и имя обратно в тот же IP. При этом на одном IP может хоститься много доменов и быть установлено много сертификатов, включая вайлдкарды. И наоборот, один домен может хоститься на многих IP. Чтобы исключить прямое обращение к хосту по "неожиданному" для него имени в своем домене, обычно используются PTR записи в нейтральном домене. Кстати исторически принято использовать именно домены в .net. Google так же использует 1e100.net как нейтральный домен для подписи транзитных писем, раньше для этого использовался собственно домен google.com и это приводило к забавному багу, позволявшему подделывать подписи на письмах от google.com, я рассказывал о нем на PHDays 2014.
    Географические домены исторически используют для организации региональных датацентов и ускорения доступа, например yahoo.jp физически расположен в Японии.
    Ответ написан
    6 комментариев
  • Как задать принудительно порт отправителя?

    Можно, вызвав bind() для сокета и указав порт в структуре sockaddr_in.

    int sock;
    unsigned short port = 666;
    struct sockaddr_in sin;
    
    sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)
    memset(&sin, 0, sizeof(sin));
    sin.sin_family = AF_INET;
    sin.sin_port = htons(port);
    bind(sock,(struct sockaddr *)&sin, sizeof(sin));


    P.S. не заметил PHP в тегах, но принцип тот же.
    php.net/manual/en/function.socket-bind.php
    указываете ненулевой порт.
    Ответ написан
    Комментировать
  • Как передавать данные на сервер без статического IP?

    Можно реализовать с помощью функции connect back в 3proxy
    (один прокси ставится на домашний компьютер, один на VPS, со стороны VPS пробрасывается порт на домашний компьютер)
    https://3proxy.ru/howtor.asp#CONNBACK
    работает это похоже на вашу текущую схему.
    Но если нет каких-то серьезных причин, то правильнее сделать VPN, как вам уже посоветовали.
    Ответ написан
    Комментировать
  • Что именно хранится в куках аутентификации?

    Куки используются для организации сеанса, а не для аутентификации как таковой, т.е. куки позволяют сопоставить запрос и сеанс, для которого уже пройдена аутентификация, поэтому токены, используемые в авторизации (например OAuth) в куках не хранятся.

    Другой вопрос, как именно сопоставляются данные о сеансе и куки, тут может быть несколько подходов:
    1. Данные о сеансе хранятся на стороне сервера, куки используется как ключ, по которому они достаются, например из базы.
    2. Данные о сеансе хранятся в самой куки, зашифрованные ключом сервера, это позволяет избежать хранения данных на стороне сервера.
    Ответ написан
  • Как связаться с техподдержкой mail.ru?

    Поддержка по регламенту может отвечать до 5 дней.
    По оперативным вопросам связанности/доставки писем лучше писать на postmaster@corp.mail.ru
    Ответ написан
    Комментировать
  • Как добавить запись в DNS роутера?

    По описанию, ваша проблема не имеет отношения к DNS, т.к. она не в том, что имя не резолвится, а в том что где-то маршрута не хватает.
    И ответ: таки добавлять маршруты. Но делать это не обязательно руками, можно использовать OSPF, например.
    Ответ написан
    Комментировать
  • Где разместить англоязычную статью по ИБ?

    Можно опубликовать не medium.com, если статья будет годная, то ее могут попросить в какую-нибудь публикацию типа HackerNoon.
    Ответ написан
    Комментировать
  • Много соединений socket. Что лучше использовать asyncio или потоки?

    При использовании одного потока с асинхронной обработкой будет задействовано только одно ядро процессора. При использвании потока на каждый запрос большие дополнительные расходы на создание потоков. Отсюда:
    1. Если каждый запрос требует серьезной обработки и грузит процессор - используйте потоки.
    2. Если запросы частые, но обработки не требует - используйте асинхронность.
    3. Если у вас действительно высокие нагрузки и нужно максимально эффективно использовать ресурсы - используйте приложение с несколькими заранее запущенными потоками (worker'ами) и в каждом из них используйте асинхронность, распределяйте запросы равномерно между воркерами. Количество воркеров должно быть не меньше, чем количество ядер.

    P.S. при исользовании любого подхода кроме один запрос - один поток, асинхронность должна быть не только на сокетах, все операции (например работа с файлами) должна быть асинхронными, чтобы не приводить к блокировке потока.
    Ответ написан
    Комментировать
  • Почему не работает dns сервер?

    Домен dprogertest.com вы не зерагистрировали, поэтому кроме DNS-сервера хостящего эту зону, т.е. 95.213.191.251 об этом домене никто ничего не знает. Вы используете для резолвинга 188.93.16.19 который об этом домене ничего не знает. Чтобы резолвить имя именно через 95.213.191.251, необходимо давать команду
    nslookup dprogertest.com 95.213.191.251
    Ответ написан
    3 комментария
  • Как пустить трафик в обход OpenVPN?

    Например, в 3proxy

    socks -e1.2.3.4

    использует 1.2.3.4 в качестве внешнего (исходящего) адреса. Но с проксификацией игр могут быть проблемы, особенно если используется UDP. Лучше в документации по играм найти список используемых сетей (обычно их публикуют) и прописать статические маршруты до игровых серверов в нужный сетевой интерфейс через
    route add -p
    Ответ написан
    Комментировать