• Как "навесить" капчу на готовый сайт (anti-ddos, apache2/nginx)?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Капча ведь от полноценного DDoS-а не поможет. Если будет настоящий DDoS с 100500+ запросами в секунду - просто замучаетесь генерировать/отправлять эту капчу, с нулевым результатом, клиенты так и будут её без остановки запрашивать...

    Самое простое - в самих скриптах проверять валидность данных. Например аргумент zGzn1=Ar4lt1aB у вас где-нибудь существует/используется? Нет? Ну и баньте запрашивающего сразу, не через iptables - так через отдельный файл, скидывать туда все блокированные IP-шки.

    Можно сделать a-la Captcha, статичную страничку, на которую будут редиректиться все непроверенные запросы, и там JS-форма с кнопкой(ами), и надо щелкнуть определённую, и тогда будет нужный cookie/аргумент, и полный доступ к сайту... Но атакующие могут тоже адаптироваться, надо учитывать.

    Да, CORS поможет, потому что браузер сначала HTTP OPTIONS запросом узнаёт разрешения https сайта - а уже потом ломится за содержимым. Но тут зависит от механизма, действительно ли атакующие браузеры делают запрос с какой-то злонамеренной страницы? Если бы страница была - она отображалась бы в Referer... А тут больше похоже на вредоносный браузерный плагин, а не на ссылку с какой-то страницы, и CORS просто не сработает.

    По-моему так!
    Ответ написан
    3 комментария
  • Откуда в Google search console появились страницы без слеша и как их убрать (как получить 0 не-индексированных страниц)?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    проще всего и опаснее всего - роботс

    дольше но надежнее - понять откуда берутся - смотрите логи, обычно так склеивает гугл JavaScript - там чего только не бывает, но может в вашем случае и банальный ререререредирект или кривизна приложения и опять же ререредирект (ререре - это я типа множественный редирект обозначил)

    ну и банальный простой редирект по кривизне тоже может быть - смотрите логи за пару часов до - куда бот ходит
    Ответ написан
    5 комментариев
  • Имеет ли смысл хранить refresh-токены?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Refresh-токены хранят для проверки на повторное использование. При первом использовании ставится пометка, при попытке повторного использования блокируются все refresh-токены пользователя. При следующем обновлении с любого клиента данного пользователя потребуется полная аутентификация. Можно хранить не весь токен, а только uid токена и id пользователя.
    Ответ написан
    Комментировать
  • Как переубедить нейросеть (чтобы данные из промпта считались более важными)?

    @rPman
    С LLM у тебя только два варианта - добавлять информацию в запрос, а в случае с противоречиями, тюнить и усложнять подводку, типа если ты хочешь чтобы везде где сетка использует цвет красный она говорила
    бибип:
    Дальше в ответе вместо цвета - 'красный' ты должен писать бибип, с учетом правил русского языка, рода и склонения. Назови три цвета у светофора

    Три цвета у светофора: бибип, желтый и зеленый.



    Так вот тюнинг, очень противоричивая технология, в каких то случаях она значительно улучшает результат, есть даже ускоренный тюнинг, затрагивающий очень небольшой процент весов или даже только веса векторов запроса но не самой сетки (есть открытый проект peft с поддержкой практически всех доступных моделей), к сожалению openai не дает красивого доступа к этому, хотя для младших моделей типа gpt35turbo или davinci у нее такой механизм есть.

    Этот механизм имеет недостатки, из-за проблемы 'катастрофического забывания', чем больше данных ты пытаешься добавить в модель через дообучение, тем больше она забывает ранее выученных (с этим борются подмешиванием данных из изначальной обучающей выборки но это не так просто)
    Ответ написан
    Комментировать
  • В чем отличие ngnix от golang?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    На самом деле эта путаница по-человечески очень понятна и объяснима.
    Вы, как фронтендер, воспринимаете "веб-сервер" как такой черный ящик, "то место, откуда фронт запрашивает данные".

    В то время как этот термин может означать несколько разных понятий.
    1. Веб-сервер в вашем, широком понимании. Бэкенд целиком.
    2. Также веб-сервером может называться и сам компьютер, на котором все это крутится.
    3. В более узком смысле - это программа, которая принимает НТТР запросы. Вот это nginx и есть. Но сам по себе, без помощи других программ, он не может полностью представлять услуги веб-сервера. Например, в нем нет базы данных. Это, скорее, как правильно написали в соседнем ответе - такой прокси-сервер, который частично обрабатывает запросы сам (например к статическим файлам), а частично - проксирует запросы на другие программы.

    И вот на Го (или РНР, Питоне, JS, C#) как раз и пишется эта программа, которая, к примеру, обращается в БД, получает нужные данные и отдает их Nginx-у, который уже и возвращает их клиенту
    Ответ написан
    14 комментариев
  • Как зациклить это действие?

    Vindicar
    @Vindicar
    RTFM!
    Цикл while?
    Не, серьёзно. Это основы языка. Открой учебник и читай.
    Ответ написан
    Комментировать
  • Какие могут быть полезные или интересные применения для демо-сайта с ChatGPT?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    - Формировать интересный маршрут для прогулки по городу согласно вектору интересов пользователя. Нейросеть фильтрует POI из картографических сервисов, формирует план прогулки, формулирует интересные факты про локальные интересности. Фильтрация PoI, построение маршрута, создание описания маршрута, TTS с аудиогидом по маршруту.
    - вытаскивание из новостей в новостных лентах информации о топонимах, красивая визуализация происходящего в таймлайне с отображением на карте.
    - Короткая выжимка из типичных статей в Дзене, где о простых вещах запрягают такую телегу, что читать устанешь. Только факты и тезисы.
    - Попытка создать мыслительный процесс. Поток внешней информации обрабатывается отдельными запросами к нейросети для сжатия и выделения самого главного. Самое главное собирается в наборы и отдаётся нейросети для формирования выводов и личных размышлений на счет. предложенного. Результат обрабатывается нейросетью для выделения самого важного и сокращения объёма, а потом подмешивается на вход в следующей итерации.
    Получаем большой контекст, который будет инициализировать уже простые небольшие вопросы к нейросети. Получится эдакий "мыслящий мудрец" с некоторой даже имитацией памяти. Мыслить он будет не шибко быстро, но это и не сильно надо. Для интереса можно визуализировать "мысли", которые приходят в голову этому мудрецу. Эти мысли можно фильтровать отдельными запросами к нейросети для определения их соответствия критериям интересности.
    Таких сжатых контекстов можно держать сразу несколько, резюмировать их по отдельности, сливать результаты, снова резюмировать и отправлять снова на вход тому или иному контексту.
    Ответ написан
    2 комментария
  • Как написать нейросеть способную генерировать текст?

    @rPman
    Ты как будто отсутствовал последний год и пропустил бум ChatGPT. Этот алгоритм нейронных сетей (Generative Pre-trained Transformer) был разработан в 2017-ом 'гуглом' и 'доведен до ума' публично в OpenAI (их chatgpt4 сейчас самый продвинутый универсальный генератор текста, проявляющий признаки интеллекта).

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

    На текущий момент самая крутая из доступных нейронных сетей (доступные предобученные веса сети), которую можно доучивать под свою задачу или даже пользоваться как есть, - это фейсбуковская llama2 (бесплатная, с очень либеральной лицензией, позволяющая коммерческое использование), ее можно запускать на процессоре на десктопной машине с меньше 64гб ram (скорость от 1токен в секунду, слово это 1-7 токенов) с помощью llama.cpp или на машине с GPU, суммарной емкостью vram от 80Gb (я не нашел точные минимальные требования, квантизация 8бит доступна в штатном коде llama а 4-битную тоже можно но я не уверен какие проекты уже поддерживают llama2).

    Так как речь идет не о просто генераторе текста, а о генераторе, который понимает обычную речь (собственно использование gpt и состоит в исследовании способов составления запросов с целью получить наилучший желаемый результат) как инструкции к действию, твоя задача может быть решена вообще без программирования.

    p.s. самостоятельная разработка (сбор обучающих данных и обучение) с нуля подобного проекта невероятно дорогая, слабые версии имеют оценку стоимости обучения (при наличии специалистов, которые уже стали на вес золота) в десятки миллионов баксов только на оборудование (тоже дефицитное, так как используется в основном кластеры на основе оборудования nvidia, которые монополисты в ИИ и рисуют 10х стоимость не моргнув глазом а еще искусственно не расширяют производство чипов при наличии высокого спроса)

    Но если взять уже обученную сетку (веса) собрать небольшой датасет текстов под свою задачу, то тюнинг будет достаточно дешевым, вот еще со старой llama так делали
    Ответ написан
    1 комментарий
  • Парсинг Википедия на PHP. Как убрать лишнее?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Надо попробовать еще раз с Media Wiki API.
    У всех получается - и у вас получится.

    Парсить "в лоб" сайт, у которого есть API - это идиотизм и забивание гвоздей микроскопом.
    Ответ написан
    6 комментариев
  • На чем сейчас (локально) принято хранить долговременные данные (бэкапы)?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ярославище, не поверишь, но ленточка до сих пор остается наиболее дешевым и обьемным хранилищем. В этом отношении с 1990 года ничего не изменилось, разве только магнитофоны стали намного меньше :)
    Плюсы у них как всегда - долговечность 15-30 лет и фантастическая дешевизна на гиг обьема хранения. И можно картридж спрятать в сейф, поставить печать и посадить солдата с винтовкой :)
    Ответ написан
    2 комментария
  • На чем сейчас (локально) принято хранить долговременные данные (бэкапы)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лет 10 назад можно было на барахолках купить стриммеры HP. А кассет было много на предприятиях. Некоторые впоследствии на радиорынках продавались еще в нераспечатанном виде. Производитель лент гарантировал что-то вроде 15 лет хранения информации (при условиях правильной температуры и влажности). Это - самые длительные сроки что я видел. Размер касеты у них кажется был 20-40Гб.

    Еще Verbatim продвигал какие-то особо прочные DVD+R диски с алмазным покрытием. А по объему кажется это были 4.7G Надо посмотреть я не помню точно. Вобщем надо искать + еще покупать пищущее устройство.
    А сейчас даже ноуты продают уже без DVD привода.

    Я у себя дома храню на двух HDD дисках серии WD-Green. Конечно непонятно что делать если от времени сгорает
    контроллер но вроде как 2 сразу в один день не должны сгореть.
    Ответ написан
    2 комментария
  • Какой облачный хостинг взять для пет проекта?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Я думаю, проще взять виртуалку в каком-нить hetzner/digitalocean

    Облачные сервисы больше заточены на предоставление различных saas/paas и хороши для быстрого/автоматического масштабирования различных сервисов.
    И мне кажется, что для маленьких вещей минимальная плата там выше чем, скажем, минимальная виртуалка у более "стандартных" хостеров, где нужно будет руками поставить докер, настроить и запустить.
    Ответ написан
    Комментировать
  • Как обойти все исполнения программы?

    maaGames
    @maaGames
    Погроммирую программы
    Мьютексы, семафоры, критические секции. То есть добавь объекты синхронизации, чтобы гарантировать, что объекты изменяются упорядоченно и только одним потоком в единицу времени.
    Ответ написан
    4 комментария
  • Какую структуру репозиториев выбрать в проекте?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    • Бэк
    • Фронт
    • Мобилка
    • Либа проекта 1
    • Либа проекта ...
    • Либа проекта N

    Фронт так же можно сделать поддеревом/подмодулем бэка. Зачем выносить общий код в отдельные репозитории? Дык декомпозиция же. Удобнее работать с кучкой маленьких, законченных и более-менее автономными модулями/пакетами, чем размазывать одинаковый код по куче разных репозиториев и потом гадать что новее, старее, совместимее, оптимальнее и прочее. Да, можно сделать один общий репозиторий и держать там миллион разных модулей и прочего (ну или один большой и толстый). А потом копать кротовые норы с красными глазами в этой горе непонятно чего в поисках ошибок и нужного кода.
    Ответ написан
    Комментировать
  • Куда положить dump.sql для автоподнятия БД с нужного дампа Docker?

    @Senture Автор вопроса
    Разобрался.

    Вот мой код:
    version: "2.15.1"
    
    services:
      postgres:
        image: postgres:13.3
        environment:
          POSTGRES_DB: "username"
          POSTGRES_USER: "username"
          POSTGRES_PASSWORD: "username"
          PGDATA: "/var/lib/postgresql/data/pgdata"
        volumes:
          - ./Initer:/docker-entrypoint-initdb.d
          - usr-data:/var/lib/postgresql/data
        ports:
          - "5437:5432"
    
    volumes:
      usr-data:


    В этом случае, нужно создать директорию Initer в корне (где лежит docker-compose.yml) и в нее положить необходимый dump.sql и все работает.

    Важно!: Если папку не создать, она появится автоматически после docker-compose up. Но будет естественно пустой, и даже если сделать down, в папку положить дамп, и поднять приложение (docker-compose up) бэкап уже не накатится, т.к. БД уже была проинициализирована ранее и никакие изменения к ней применяться не будут.

    Прошу прощения за такие глупые вопросы :D
    Ответ написан
    6 комментариев
  • Есть ли универсальный модуль Python для работы с разными базами данных (mysql, postgresql, ...)?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    sqlalchemy вполне можно использовать как абстрактный интерфейс к базам данных, просто передавая в него строковые запросы без ORM.
    Ответ написан
    1 комментарий
  • Есть ли в мире легкая [крипто] платежная система для хобби-проектов?

    mihavxc
    @mihavxc
    Если проект ориентирован на РФ, то регистрируйтесь как саможанятный. Все крайне просто и никаких отчислений без доходов. А затем Юкассу подключает.
    Ответ написан
    Комментировать
  • Инфраструктура открытых ключей SSH?

    @pfg21
    ex-турист
    вторая строчка поиска ssh удостоверяющий центр
    https://www.8host.com/blog/sozdanie-centra-sertifi...
    оно ??
    Ответ написан
    4 комментария
  • Почему нет(?) популярного REST API для IMAP?

    Есть стандарты RFC 8620, RFC 8621 RFC 8887 (JMAP), фактически на REST API для почты и того что рядом с ней, если поищите - есть библиотеки этот стандарт реализующие, например сервер и клиент на Rust.

    По факту, это стандартизованный FastMail'ом его API, другим вебпочтам переезжать со своего давно написанного и отлаженного API на FastMail'овский причин нет, т.к. это означает что придется переписывать не только серверную, но и клиентскую часть, причем при наличии мобильных приложений использующих API какое-то время поддерживать две версии API, потому что пересадить клиентов на новый API одномоментно невозможно, а преимуществ, по крайней мере прямо сейчас нет - "универсальные" клиенты используют IMAP.

    Есть и другие документированые (но не стандартизованные) API, например у Google.
    Ответ написан
    Комментировать
  • Почему нет(?) популярного REST API для IMAP?

    vabka
    @vabka
    Токсичный шарпист
    Потому что IMAP - это сам себе протокол.
    Каждый почтовый сервис может для себя придумать какой-нибудь свой REST API, но все эти варианты не стандартизированы.

    Из стандартизированных есть jmap, но мало кто его использует.
    Ответ написан
    Комментировать