• Напомните библиотеку/технологию чтобы переводить хеши в мнемоничный человекозапоминаемый вид (что-то вроде "бла-бла-кода")?

    xenon
    @xenon Автор вопроса
    У меня нет проблем, чтобы изобрести свой алгоритм для этой задачи (сложность такой задачи - что-то для старших классов школы), но я не столь юн и глуп, чтобы по каждому поводу писать свой уникальный велосипед.

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

    Вариант выше про BIP39 - очень хорошо подходит под мой вопрос. Но xkcdpass тоже неплох, спасибо!
    Написано
  • Что лучше, FreeXYZ.com или Free-XYZ.com (слитно или через черточку)?

    xenon
    @xenon Автор вопроса
    Исследования того же Ашманова (его лаборатории) показывают, что ключевая фраза в домене может иметь важное значение

    А поисковик догадывается, что FreeXYZ это про Free и про XYZ или думает, что это про "freexyz"? Нужно ли разделять?
    Написано
  • Есть ли здесь реальная reflected XSS или это false positive (безопасно ли включать URL запроса в код страницы)?

    xenon
    @xenon Автор вопроса
    Там в обычной работе & не может встретиться. Ведь все ссылки делает сам сайт, и они имеют вид t=123. Так что разработчику сайта такой метод не мешает.

    Мне интересно, почему все энкодят... ну то что это полезно - окей, но может быть есть какая-то RFC для этого. Я вот нашел RFC3986, но там это не требуется. И интересно, есть ли малопопулярные браузеры, которые, может быть не экнодят (чтобы показать в случае чего, вот браузер X, у него 0.1% рынка, значит 0.1% ваших пользователей уязвимы)... Вижу, что dillo не энкодит угловые скобки (больше/меньше) например. Но в нем и JS нет :-)
  • Как сайт понимает, что я был на нём, если я запретил сохранять cookie, а также удалил все данные с него?

    Не каждое, а только мобильное. И разве IMEI автоматиески передается по HTTP?
  • Как "навесить" капчу на готовый сайт (anti-ddos, apache2/nginx)?

    xenon
    @xenon Автор вопроса
    Минус вполне себе терпимый (все лучше, чем когда сайт лежит). Но вопрос - а можно ли сделать капчу чисто на фронтенте (HTML/JS) без бэкенда? Если нельзя и нужен бэк, который будет генерировать кастомную страничку каждый раз или проверять капчу, то не получится ли так что обработка капчи (неправильной, боты ее не могут пройти успешно, но могут делать попытки) будет по сложности-скорости сравнимой с генерацией обычной страницы?
  • Как "навесить" капчу на готовый сайт (anti-ddos, apache2/nginx)?

    xenon
    @xenon Автор вопроса
    хм.... ну простенький метод - но вполне рабочий, да! супер! это и в апаче легко сделать через RewriteRule.

    А еще можно по крону менять часть конфига, которую инклюдить (требовать разные куки) и каждый час релоадить апач - чтоб задолбались :-)

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

    xenon
    @xenon Автор вопроса
    Ну, слава Богу, у нас пока "не настоящий" DDoS, но хватает, чтобы положить виртуалку. Так что, пока что, нужна не панацея от всех болезней, включая чуму и рак, а просто удобное лекарство от перхоти.

    zGzn1=Ar4lt1aB нигде не используется, но это случайная часть запроса. В этом - так, а в следующем будет 2bQQj=d3k2nnWs. Я сейчас скриптом и выгрепываю такое. Но проблема - логи большие (особенно, во время атак) и выгрепывать все это занимает ощутимое время, несколько секунд на IP. И за одну итерацию (проверку всех подключенных IP, получаю через lsof) - уходит пара минут. Потом новая итерация. Сервак успевают положить, потом я что-то баню, рестартую, но снова забивают запросами. Через какое-то время забаниваются все сегодняшние IP и атака прекращается.

    Про JS страничку - спасибо, идея очень интересная! А можно ли как-то проверять в вебсервере (то есть - быстро проверять, а не через PHP/Python) какую-то правильность куки (чтобы любая кука не работала)? Чтобы куки для разных IP, User-Agent'ов требовались разными.

    CORS может помочь даже от GET запроса? Нас GET'ами долбят, не POST'ами...

    Про браузерный плагин - интересная идея. Не исключено. Хотя мне кажется, что (по юзер-агентам) запросы и с телефонов идут, так что, может это и не плагин.
  • Как получить какой-нибудь хеш от значения переменной (dict)?

    xenon
    @xenon Автор вопроса
    Вообще, да, технически, для моей задачи - совершенно подходит. Мне только не нравится, что оно самописно-велосипедное (я бы так же сделал, и мне это и не нравится). Наверняка должно быть решение лучше, быстрее, надежнее.

    Я нашел, оно в hash. Но беда в том, что в пайтоне дикты не хешируются:

    >>> d={"a":1}
    >>> hash(d)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unhashable type: 'dict'


    Но есть решение!

    class hashabledict(dict):
        def __hash__(self):
            return hash(tuple(sorted(self.items())))


    Пробуем....

    >>> d1=hashabledict({"a":1})
    >>> d2=hashabledict({"a":1})
    >>> id(d1)
    140407093637744
    >>> id(d2)
    140407093637584
    >>> hash(d1)
    -4488753233891433094
    >>> hash(d2)
    -4488753233891433094


    источник:
    https://stackoverflow.com/questions/1151658/python...
  • Как получить какой-нибудь хеш от значения переменной (dict)?

    xenon
    @xenon Автор вопроса
    Тогда уж по-правильному, не только IP:порт удаленного узла сравнивать, но и всю четверку (IP:порт каждого конца). На UDP можем для упрощения забить. Да, в рамках задачи такое решение сработает. Но я подумал, что есть общее решение, способное выдать значение по дикту. Похоже, что общего решения нет.

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

    xenon
    @xenon Автор вопроса
    Вот примерно так я и думал сделать, но мне кажется, что это "велосипед" и на самом деле есть какой-то модуль который лучше их хеширует. А этот ваш ответ - от ChatGPT, нет? :-)

    Проблема не в том, что я не могу выдумать решение, я боюсь, что я упускаю стандартное решение.
  • Как получить какой-нибудь хеш от значения переменной (dict)?

    xenon
    @xenon Автор вопроса
    проблема в том, что эти dict мне приходят от другого кода (psutil). То есть, будет что-то вроде (чуть упрощенно)

    с = psutil.net_connections()[0]._asdict()
    и через 10 минут тот же код вернет уже новый dict, но с теми же значениями и хочется этот факт обнаружить.
  • Откуда в Google search console появились страницы без слеша и как их убрать (как получить 0 не-индексированных страниц)?

    xenon
    @xenon Автор вопроса
    pashjka, нет, не совсем так (ну или в каком-то смысле). Условно, гугл нашел page/ (правильный адрес) и проиндексировал, а еще нашел и page (без слеша) и ругается, что это не страница, а редирект, и как страницу он ее не проиндексировал.

    Реальной проблемы в этом нет, т.к. страница "товара" все равно проиндексирована. Но вот сообщение про редирект числится в ошибках, и это мне не нравится. Во-первых, не нравится по причине "волки! волки!" - если у меня там будет 500 таких ненастоящих ошибок, я не найду среди них сообщение о какой-то реальной проблеме. Во-вторых, я не очень понимаю откуда вообще этот адрес взялся (и он такой не один) и когда гугл его забудет.

    Мне кажется, гуглу пофиг, можно и со слешом и без слеша, но страница без слеша у меня редиректная на страницу со слешом.
  • Как подключить библиотеку которая в процессе написания?

    в библиотеке.

    ну вот я веду работу в каталоге ~/repo/evalidate в нем всякие setup.py, README и можно еще и какой-нибудь тестовый x.py там положить. И в этом же каталоге у меня есть еще один каталог evalidate и в нем уже либа (__init__.py и другие файлы).

    вот в x.py делаю import evalidate, и пишу свой тестовый код. Чтобы import сработал из моего подкаталога evalidate, а не использовалась системная библиотека, и нужно поставить переменную окружения export PYTHONPATH=.
  • Как подключить библиотеку которая в процессе написания?

    Викентий, PYTHONPATH решает эту проблему. Исправляете что-то в коде, сохраняете изменения на диск, запускаете тестовый скрипт - и он работает уже с новым кодом.
  • Откуда в Google search console появились страницы без слеша и как их убрать (как получить 0 не-индексированных страниц)?

    xenon
    @xenon Автор вопроса
    Да, попробую так. Только у меня проблема с "бесслешевыми" страницами шин (кончаются не на слеш), а не с пробельными-беспробельными. Я специально ссылку (без слеша) в примере испортил пробелом, чтобы не получилось, что гугл ее тут проиндексирует и всегда будет знать о ссылке без слеша.

    Проект не "настоящий", больше чтобы как раз поиграться, попробовать - так что опасные игры вполне подходят :-)
    Спасибо!
  • Откуда в Google search console появились страницы без слеша и как их убрать (как получить 0 не-индексированных страниц)?

    xenon
    @xenon Автор вопроса
    А что через robots.txt? Как-то пофиксить через него можно? Запретить ходить без слеша? Я не уверен, что понял первую мысль.

    Хостится на cloudflare pages, наверное, там как-то можно логи получить, но куда он может ходить-то, если у меня сайт статический(вот это, наверное, стоило в посте сразу написать), так что все ссылки я просто грепом могу проверить:

    mir ~/repo/shinhub $ rgrep michelin-energy-xm2 public/
    public/index.xml:      <link>https://shinhub.ru/tires/michelin-energy-xm2/</link>
    public/index.xml:      <guid>https://shinhub.ru/tires/michelin-energy-xm2/</guid>
    public/index.xml:      <link>https://shinhub.ru/tires/michelin-energy-xm2plus/</link>
    public/index.xml:      <guid>https://shinhub.ru/tires/michelin-energy-xm2plus/</guid>
    public/tires/index.html:            <li><a href="/tires/michelin-energy-xm2plus/">Michelin Energy XM2&#43;</a> (1)</li>
    public/tires/index.xml:      <link>https://shinhub.ru/tires/michelin-energy-xm2/</link>
    public/tires/index.xml:      <guid>https://shinhub.ru/tires/michelin-energy-xm2/</guid>
    public/tires/index.xml:      <link>https://shinhub.ru/tires/michelin-energy-xm2plus/</link>
    public/tires/index.xml:      <guid>https://shinhub.ru/tires/michelin-energy-xm2plus/</guid>
    public/sitemap.xml:    <loc>https://shinhub.ru/tires/michelin-energy-xm2/</loc>
    public/sitemap.xml:    <loc>https://shinhub.ru/tires/michelin-energy-xm2plus/</loc>
  • Как проверить, что wireguard не заблокирован?

    xenon
    @xenon Автор вопроса
    Terbyn, нет, конфиг сервера - обычный (и в этом большой плюс - работает даже с чужими wireguard серверами, если они блокируются через DPI, а не через IP/порты). Это прописывается на клиенте, чтобы перед соединением послать на сервер какой-то мусор и сбить с толку DPI. Соответственна, DEST_PORT и DEST_IP - это порт и IP адрес сервера. Настоящий, белый IP адрес (не приватный, который раздаваться будет). Но важно на клиентской стороне зафиксировать порт и его же указывать для nping (в моем примере, это 12345).

    По сути вся эта строчка PreUp нужна просто для того чтобы автоматом пробивать дорогу через DPI. Сначала надо убедиться что вручную это работает (nping .... запускать руками, потом запускать wg), а потом уже перенести в PreUp.
  • Как проверить, что wireguard не заблокирован?

    xenon
    @xenon Автор вопроса
    MrBoRsCH, `PreUp` - это в конфиге клиента на Linux. Просто вызов команды перед поднятием тоннеля. Не знаю, понимает ли на андроиде эту команду, но она ведь вызывает еще и nping, то есть, чтобы она успешно отработала, и он должен быть на андроиде в таком случае - скорее всего она все равно работать не будет.
  • Как переубедить нейросеть (чтобы данные из промпта считались более важными)?

    xenon
    @xenon Автор вопроса
    Василий, да, я думал, что можно "развести" на какую-то игру про это, но это не слишком хороший вариант - размер контекста (в промпте и в истории) ограничен и долгие объяснения с примерами - очень дорого обходятся. К тому же хочется не просто один раз добиться фразы "курить полезно", а именно быть уверенным, что сетка работает так как мы хотим. А в случае, если мы его подготавливаем, что это игра, он и фразы будет строить скучно-занудно-неправильно, вроде "в ситуации нашей игры, снег черный, а вода сухая", и сбиться может, перестать играть внезапно.

    Ощущение, что общаюсь не с убийцей всех человеков, а с тупой капризной девочкой, которая что-то там знает, и никакие доводы ее не переубеждают :-)
  • Как переубедить нейросеть (чтобы данные из промпта считались более важными)?

    xenon
    @xenon Автор вопроса
    Я это знаю. Но контекст предыдущих сообщений не помогает так просто "переучить" его, если он твердо убежден, что курение вредно.