• Как обезопасить программу С# от взлома?

    MANAB
    @MANAB
    Разрабатываю на C#: Web, Desktop, Gamedev
    По хорошему ответ на вопрос в заголовке - практически никак и торренты с ломаным софтом этому аргумент.
    Т.к. непонятно что защищать и от чего, то непонятно и что советовать, слишком много всего и обязательно что-то упустишь.
    Задам вопрос по другому - почему неподходит выполнять команды на сервере и получать результат? Соответственно получится аутентифицировать и авторизовать пользователя, проверить оплату/баланс и отдать или нет результат.
    Даже если же это on-prem решение по типу игр или фотошопа все равно какие то важные моменты можно вынести на свой сервер, без которых невозможна работа локально.
    Ответ написан
    Комментировать
  • Символ решетки # в конце адресной строки, на сайте не работает поиск и частично грузится главная?

    re-alter
    @re-alter
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Подскажите, выручайте.

    Для WordPress рутинные процедуры: сделай полную резервную копию (бэкап) сайта; по одному отключай плагины, проверяя каждый раз, решило ли это действие проблему с отображением сайта; переключи активную тему оформления на одну из стандартных (twenty*), также проверь, осталась ли проблема с отображением сайта. Обновлён ли движок? Плагины? Тема?

    Я вообще не знаю, за что хвататься: что это - плагины, тема, еще чо?

    Хватайся за логи ошибок PHP и/или за дебаг WordPress + удали (а ещё лучше отключи на время диагностики) кэш, если таковой имеется.

    Отдельное внимание удели теме Avada - она премиальная (коммерческая), а значит: а) у вас (у компании) может быть варез, если вы её не покупали на Theme Forest; б) тему могли давно не обновлять, что-то где-то устарело, начались конфликты X с Y; мог устареть какой-то плагин, входящий в установочный бандл.
    Ответ написан
    Комментировать
  • Как скрыть токены и пароли в python?

    С чего вы взяли, что в .env можно писать JSON (да ещё и невалидный)?
    https://pypi.org/project/python-dotenv/#file-format
    Ответ написан
    4 комментария
  • Почему нет доступа к MongoDB из докер контейнера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Пробрасывать порт нужно 27017, а не 5000!
    ....
         ports:
            - '27017:27017'
    ....

    PS. И не надо картинки постить. Копируйте текст в теги code, это так просто. Из картинок его не выдрать, а набирать - лень! Я вот поэтому вообще отвечать не хотел...
    Ответ написан
    1 комментарий
  • Какой смысл преподавать в вузах жутчайшую математику?

    Zifix
    @Zifix
    Barbatum
    Как говорил наш преподаватель по матану — вы, конечно, все это забудете, но человек который это осилил, и который нет — это два разных человека по уровню развития мышления.
    Ответ написан
    Комментировать
  • Как правильно списывать ИТ оборудование в компании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Правильный ответ - этим занимается не систадмин, а бухгалтерия.
    С вашим бухгалтером и обсудите что для этого нужно.
    Как минимум все оборудование должно быть на балансе организации, у бухгалтера есть варианты как оно было поставлено на баланс, и по какой статье у него идет списание и амортизация. Ваша задача там чисто консультативная
    Ответ написан
    Комментировать
  • Как заставить бота ждать ответа пользователя?

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала твоя лесенка из if-elif-elif-... - плохое решение.
    Сделай нормальную структуру данных вместо пачки переменных. Используй словарь, или ещё что. Например, такого вида:
    # словарь, где ключ - строка с названием пунка отправления, а значение - ещё словарь,
    #   где ключ - строка с названием пункта назначения, а значение - список,
    #     где элементы - пары строк ("время отправления", "время прибытия")
    # Тогда с таким словарём можно будет работать так:
    bus_timetable: dict[str, dict[str, list[tuple[str, str]]]] = {
        # ты словарь заполняешь по результатам парсинга, ну и то хорошо
        # я для примера запишу прямо так
        'Владимир' : {
            'Муром': [
                ('8:00', '11:00'),
                ('9:00', '12:00'),
                ('10:00', '13:00'),
            ],
        },
    }
    point_from = 'Владимир'
    point_to = 'Муром'
    # для примера вывожу в консоль, для бота перепишешь сам
    print(f'Автобус из {point_from} в {point_to}')  
    for departure, arrival in bus_timetable[point_from][point_to]:
        print(f'Отходит в {departure}, прибывает в {arrival}')

    Тогда тебе не потребуется делать кучу веток для разных городов, достаточно лишь определить значения point_from и point_to. Более того, ты можешь просто перечислить ключи внешнего словаря при создании кнопок:
    kbd_from = types.ReplyKeyboardMarkup(resize_keyboard=True)
    buttons = [types.KeyboardButton(point_from) for point_from in bus_timetable]  # список кнопок
    kbd_from.add(*buttons)  # если надо добавить все кнопки сразу

    Похожий приём возможен и для определения кнопок для городов назначения.

    А теперь по тому, как сделать выбор. Тут есть два варианта, но давай пока поговорим о ReplyKeyboardMarkup, которую ты используешь.
    Если ты хочешь использовать ReplyKeyboardMarkup, то стоит помнить - её кнопки дают тот же эффект, как если бы пользователь просто ввёл текст кнопки сам. Поэтому тебе потребуется использовать register_next_step_handler(). Ты не привёл код своей попытки, но в целом идея несложная. В основном обработчике события ты проверяешь, что текст сообщения содержится в bus_timetable (оператор in в помощь) - это значит, что текст сообщения содержит название известного боту города.
    Тогда ты делаешь вызов register_next_step_handler() и ставишь обработчик второго сообщения. Единственное "но": тебе нужно будет обработчику передать первый выбранный город. Это будет выглядеть как-то так:
    @bot.message_handler(content_types=['text'])
    def first_message_handler(message):
        if message.text in bus_timetable:  # назвали известный город? Это пункт отправления
            kbd = ...  # тут определяешь клавиатуру, опираясь на города в bus_timetable[message.text]
            response = bot.reply_to(message, "А теперь назовите пункт назначения", reply_markup=kbd)
            # обрати внимание: все параметры после указания функции second_message_handler будут
            # переданы в эту функцию при её вызове. А вызвана она будет, когда пользователь ответит.
            bot.register_next_step_handler(response, second_message_handler, message.text)
        elif ...  # нам назвали не город - тут можно проверить другие команды
    
    def second_message_handler(message, point_from):
        # а эта функция будет вызвана только когда пользователь уже назвал пункт отправления
        # point_from будет содержать название города, отправленное пользователем.
        if message.text in bus_timetable[point_from]:  # нам назвали допустимый пункт назначения
            bus_rides = bus_timetable[point_from][message.text]  # список рейсов
            ...  # дальше перебираем список bus_rides и выводим его пользователю
        else:  # пользователь назвал что-то другое
            ...  # говорим пользователю, что он дурак
    Ответ написан
    1 комментарий
  • Где взять бэкенд для фронтенд учебного проекта?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ответ написан
    Комментировать
  • Как обработать sql-дамп bash-скриптом[sed,awk]?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище. Тебе не надо этот дамп обрабатывать. Загрузи его в любую БД (SQLite, postgres) и там одной
    командой сделай нужное отбеливание.

    Игры с sed/awk обычное не нужны при работе с БД. Достаточно самой БД.

    Исключение может быть только в том случае если ты делаешь лабу и преподаватель тебе
    специально назначил такие ограничения. Типа изучаем консоль линукс и обработку текста.
    Ответ написан
    1 комментарий
  • Бывают Intel core i5 13420H с 12 ядерным процессором?

    Adler_lug
    @Adler_lug
    Он бывает только такой и никакой другой
    SHjhxKk.png
    А интернет-магазин может все что угодно написать.
    Ответ написан
    Комментировать
  • Какие технологии использовать для создания веб-сайта на go?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Чаще всего такие задачи реализуются не на Go.
    Ответ написан
    Комментировать
  • Можно ли прочитать файл readme.txt из прикрепленного ZIP-архива и вывести в содержимом записи?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Скажите, есть возможность вывести содержимое файла readme.txt в описании публикации?

    Плагином WPDM Pro нет, необходимо прочитать содержимое txt файла из zip, затем вывести информацию на страницу WP в нужном виде.
    Ответ написан
    3 комментария
  • Что делать если в explorer на windows 7 не открывается сайт хотя в других ситуациях он открывается?

    SagePtr
    @SagePtr
    Еда - это святое
    Набор шифров не поддерживается. Сервер для TLS 1.2 поддерживает только эти:
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   ECDH secp256r1 (eq. 3072 bits RSA)   FS	256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   ECDH secp256r1 (eq. 3072 bits RSA)   FS	128
    TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)   ECDH secp256r1 (eq. 3072 bits RSA)   FS	256

    А IE поддерживает ECDHE только в паре с ECDSA-сертификатом (а там на сервере RSA).
    https://www.ssllabs.com/ssltest/analyze.html?d=aut...
    В техподдержку обращаться не стоит, вряд ли для вашего IE сделают исключение и разрешат заведомо более слабое шифрование.
    Ответ написан
    4 комментария
  • Как исправить низкую скорость до определённых ресурсов?

    @d-stream
    Готовые решения - не подаю, но...
    Собственно несколько моментов:
    - как уже отметили "до xx mbit" - даже ноль, то бишь нет трафика тоже до 100500мбит
    - это скорость последней мили - то есть от абонента до провайдера; скорость от провайдера до ресурса - бруклинский мост в продажах маркетологов и не более
    - общепринятая практика многих ресурсов - ограничение скорости отдачи по каждому соединению... ну грубо чтобы хост с файлами мог отдавать нескольким клиентам одновременно, он ограничивает тем или иным образом чтобы каждый отдельный не выжрал всю его полосу разом и осталось что-то остальным... удобный способ - лимитировать сессию/коннект - тогда несколько сессий/коннектов дадут в сумме скорость повыше

    p.s. Кстати даже для обладателей гарантированных каналов (где скорость гарантируется как ровно xx mbit) картина не сильно меняется:
    - им гарантируют её до оборудования провайдера
    - аплинки на IX могут быть заявлены как XXGbit, но по факту это XX гигабитных каналов, что для одной сессии/соединения ограничит сверху скорость скоростью одного канала)
    Ответ написан
    Комментировать
  • SSH ключи перестали работать и нет возможности зайти на сервер?

    Перепроверьте, действительно ли ip адреса, к которым вы подключаетесь принадлежат вашим виртуалкам. Так как например у Яндекса если внешний ip не сделать статическим - при перезагрузке сервера он может измениться, возможно и у амазона так же и вы сейчас пытаетесь залогиниться на чужую машину.
    Ответ написан
    1 комментарий
  • Как сверстать такое (фото)?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как увеличить производительность проекта на python?

    petermzg
    @petermzg
    Самый лучший программист
    1. Оптимизация SQL запросов.
    2. Кеширование часто используемых данных.
    3. Кеширование ответов на GET запросы.
    Ответ написан
  • Как увеличить производительность проекта на python?

    все упирается в бд, на ум сразу пришло вынести эту часть в микросервис
    Какой ещё микросервис? Микросервис, который делает что?

    В-нулевых, нужно конкретизировать что значит "упирается в БД". Тормозят какие-то конкретные запросы? СУБД не хватает ресурсов? Слишком медленный диск? Или, может, под "упирается в БД" вы понимаете всю бизнес-логику приложения, которую вы называете "берет из бд нужные данные" (и тогда становится понятно про микросервис)?
    Во-первых, нужно вынести СУБД на отдельную машину, желательно на голое железо (если речь про реальный хайлоад, а не про кривой код и конфиги).
    В-третьих, под это железо нужно СУБД корректно сконфигурировать.
    В-четвёртых, нужно добавить кэширование.
    В-пятых, нужно проверить алгоритмы и пофиксить узкие места (на последнем месте, потому что это самое трудоёмкое).

    Я понимаю, что python и django не самые быстрые инструменты (мягко скажем)
    Я вас уверяю, что проблема в вашей компетенции (мягко скажем), а не в инструментах. Есть достаточно проектов, написанных на Джанго, которые вывозят большие нагрузки.
    Вы, в принципе, правильно сделали, что попытались поначалу закидать проблему железом - оно обычно дешевле, чем время разработчиков. Но параллельно надо и оптимизацией заниматься, и это требует системности, которой в вопросе не очень-то видно. Ну и компетенций разных - если тормозят алгоритмы - это одно, если конкретные SQL-запросы - это другое, если СУБД задыхается в принципе - это третье.
    Ответ написан
    5 комментариев
  • Как увеличить производительность проекта на python?

    @Everything_is_bad
    Запустил профилировщик, увидел, что все упирается в бд, на ум сразу пришло вынести эту часть в микросервис,
    Начал правильно, но вывод сделал левый, по уму надо начать с тюнинга postgresql, оптимизировать SQL запросов (может у тебя там индексов не хватает или еще хуже, проблема N + 1), кешировании данных.
    Ответ написан
    Комментировать
  • При выгрузке CSV файла из 1С на хостинг, в файл добавляется невидимый символ, откуда?

    Lynn
    @Lynn
    nginx, js, css
    На 146% уверен что это BOM.
    Надо пересохранить файл из какого-нибудь текстового редактора или научить 1С не добавлять BOM.
    Ответ написан
    4 комментария