All streams
Search
Write a publication
Pull to refresh
50
0.8
Send message

Возможно, американские/европейские порносайты внесли в черный список, чтобы краулер обучающих данных на них не ходил, а китайские порносайты исключить забыли, потому что команда разработчиков про них не в курсе. Либо, если пригодность данных для обучения тоже определяла нейронка, её не обучали на китайских порносайтах и она их пропустила, а никто и не заметил.

Там проблема скорее в сериализации, что где-то сделали toString значению, которое может быть null. Причём сделали даже не при регистрации, а там где идёт рассылка емейлов. Просто раньше прилетевшую строку null искали в базе и не находили. А теперь нашли соответствующего ей пользователя и отправили ему уведомление.

Баг был и без этого пользователя. Например, емейлы не уходили в каких-то ситуациях, базу лишний раз дергали и т п

Статья показывает метод поиска уязвимостей "понатыкать null/undefined строк туда, где им не место, и посмотреть что будет". Так как это достаточно распространённая ошибка - привод к строке nullable значения, в результате получается "null" неотличимое от переданной строки вручную. И дальше может что-то пойти не так.

Знать внутреннее устройство сервиса при этом не обязательно.

Есть форматы, где null не предусмотрен. Например, url encoded формы. Конечно, по-хорошему, туда и не надо пихать null (а обозначать отсутствие значения отсутствием поля или ещё как-то более однозначно), но если очень хочется... Между тем некоторые сериализаторы делают тупо toString всем полям и, соответственно, null превращается в "null" и дальше едет как строка и становится неотличим от явно переданной строки "null".

Бекэнд в 99.9% случаев подключается под юзером с правами на DELETE строк, потому что как-то должна же работать админка, где есть функция удаления записей. Разграничения прав доступа идёт на уровне бекэнда, а не СУБД.

Также очень часто бекэнд имеет право на создание и удаление таблиц, потому что он же и выполняет миграцию схемы данных при обновлении ПО.

Единственное, что DROP DATABASE может не быть, но только если админ заморочился сделать отдельного юзера под бекэнд. Что вовсе не факт, если СУБД обслуживает лишь один бекэнд.

Речь о том, что до этого были задокументированы только случаи индуцированного бреда, где пациенты общались лично. А тут первый задокументированный случай, где всё общение было в Интернете.

Китайцы уже и так делают картриджи для всего, где нет жесткого DRM. У меня принтер как раз на таких и работает, просто после установки один раз выводит сообщение, что картриджи не оригинальные и производитель ничего не обещает.

Спрос на именно OpenSource будет низок, плюс стоить они будут как оригинальные или даже дороже.

А принтер разовая покупка и там могут быть какие-то интересные фичи.

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

По сути все rules.md, agents.md и сам промт - это такая же программа, просто на естественном языке. И все принципы те же - если запустить скрипт на питоне от злоумышленника, то случится плохое. Если запустить инструкции для ИИ от злоумышленника, то тоже будет проблема.

Спасибо за ответ

Были на практике случаи, когда браузер не слал If-Not-Modified-Since/If-None-Matches при наличии ресурса в кеше (причём кеш по etag даже не чувствителен к сбитым часам клиента, так как всё идёт по хешу, а не дате изменения)? Интересно

If-Not-Modified-Since + Last-Modified или If-None-Matches + Etag. Почему ваш сервер не обрабатывает/отдаёт эти заголовки на статику (это поведение по умолчанию любого нормального веб-сервера и даже модуля отдачи статики dev-сервера)?

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

Тут определённо что-то не так!

Почему нельзя просто отдать Cache-Control со сроком годности в год? Чтобы обновлять анимации настроить бандлер добавлять хеши к именам файлов, тогда новая версия новое имя файла, обход кеша. Обычно это поведение по умолчанию, просто надо не класть анимации в public каталог, а импортировать в JS их пути/содержимое (бандлеры отлично умеют импорт JSON, в том числе асинхронный), чтобы они прошли бандлер.

Либо честная обработка If-Not-Modified-Since заголовка сервером + отдача Last-Modified заголовка. Либо Etag + If-None-Matches по вкусу. Опять же, большинство веб-серверов делают это по умолчанию при отдаче статики. Если не делают, надо чинить, там обычно вопрос одной опции, причём часто идущей по умолчанию.

В браузерах, http протоколе и веб серверах есть всё необходимое для кеширования, если это специально не ломать кривыми настройками.

А Service Worker тут стрельба из пушки по воробям, он нужен для разработки приложений, которые вообще без интернета работают.

Статья из разряда "как не надо делать".

А они хитрые. С такой клавиатурой ни быстро закрытых тикетов ни даже быстрых ответов никто от них ждать не будет!

Как я понял мораль статьи, она в том, что можно не вслепую придумывать потребности может выстрелит, может нет, а проверять потребности по статистике гугла.

Грубо говоря, не закупиться слонами, а потом давать контекстную рекламу "купи слона" и пытаться угадать с ключевиками "купить большое домашнее животное". А сначала обнаружить тренд в Гугле, что люди ищут "купить слона", а там в выдаче фигня и уже под это дело открыть магазин слонов.

А если люди ищут не "купить слона", а "купить удава", то сменить идею на магазин удавов вместо магазина слонов, который никто не ищет.

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

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

Это если компания айтишная. А если условная кафешка заказала фрилансеру сайт с меню и функцией заказа или взяла что-то готовое, а потом обнаружила проблемы с SEO, то она может выбрать заплатить за готовый сервис, потому что штатного админа у нее нет. И сервера нужной производительности для headless chrome может не быть. А может вообще сервера нет и весь бек тоже SaaS.

У гугла в документации написано, что клоакинг это когда итоговое содержимое разное. Грубо говоря, гугл боту отдают сайт про яблоки, а юзеру сайт про груши.

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

Не читал доку этого конкретного сервиса, но любой приличный SaaS имеет опцию привязки домена клиента - клиент прописывает в DNS IP сервера SaaS, а SaaS по заголовку Host понимает какой клиент пришёл и обрабатывает его соответственно (разумеется, в личном кабинете клиент должен прописать свой домен).

Но можно, например, в конфиге своего веб-сервера прописать разный proxy_pass для гугл бота и для всех остальных. Ничто не мешает в proxy_pass поставить вместо бекэнда внешний ресурс. Тогда от SaaS не требуется даже фича привязки домена.

Если строить по такому значению индекс, то оно будет сохранено куда-то на диск как минимум в индексе. А значит можно воспользоваться STORED.

VIRTUAL имеет смысл для того, что на диск попадать таки не будет. По сути сахар для VIEW, чтобы какие-то часто используемые вычисляемые данные проще задействовать в запросе.

Непонятно как в списке оказался tab-size. Какой-нибудь highlight.js раскрашивает содержимое блока кода, но он полагается на браузерный рендеринг преформатированного текста. И там пригодится тот самый tab-size, если хочется подправить стиль. Полагаю, другие красилки кода тоже могут полагаться на pre. И даже если размер таба вынесен в конфиг, под капотом может использоваться свойство, потому что как иначе отрисовать табы как не через pre и его CSS аналог (а если красилка заменяет табы на пробелы, то это очень плохая красилка, так как код должен копироваться со страницы в точности так как был вставлен).

text-align-last звучит как полезный инструмент при text-align: justify, чтобы выбрать выравнивать ли последнюю строку тоже по ширине или по левому краю. Зависит от требований типографики. Без justify действительно не имеет смысла. Надо спрашивать дизайнеров когда они используют разные выравнивания и какое из них ТРУ (опять же, вангую, может зависеть от обычаев конкретного языка и страны).

Насчёт смены символа переноса скорее всего нужно при вёрстке сайта на языке, где принят нестандартный символ. С учётом того как варьируются правила от языка к языку (например, в русском и английском вопросительный знак ставится впритык к предыдущему слову, во французском через пробел, а в испанском вопросительных знака целых два - вначале и в конце предложения), я уверен на 99% в существовании языка с альтернативой знаку переноса. Но не удивительно с ним не встретиться верстая сайты только на русском или английском.

text-empasis понятное дело всякие онлайн словари, где нужно расставлять ударения. Плюс в некоторых книгах авторы иногда помечают слова, где ударения влияет на смысл, какая-нибудь онлайн читалка должна быть способна это отрисовать. Обычным сайтам мало нужно. Если вы не разрабатывали ни один онлайн словарь и ни одну онлайн библиотеку, то логично, что вы не сталкивались (я тоже).

В итоге одно свойство попало в список ни за что, по поводу второго надо спрашивать дизайнеров и ещё два свойства очевидно нишевые и пока вы не попали в эту нишу, они вам не нужны, но если попадёте будут must have.

В итоге остаются только два по-настоящему мало используемых свойств.

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

Бутлоадер запускается перед основной прошивкой, проверяет какое-то условие и либо запускается полноценно, либо отдаёт контроль ей.

Условие обычно либо какая-нибудь кнопка (тогда нужно при включении/перезагрузке контроллера одновременно зажать специальную кнопку), либо программный флаг (нужно отдать команду основной прошивке любым удобным образом, она взведёт флаг в памяти и перезагрузит контроллер, а бутлоадер проверит этот флаг пользуясь тем, что при soft-reset память у многих МК не очищается сама собой). Хотя всё равно хорошо бы продублировать кнопкой (на случай если нечаянно будет записана глючная прошивка, которая не может принимать команды).

У STM32 старших моделей (например, линейки STM32F4), кстати, есть встроенный с завода USB MSC бутлоадер активируемый по какой-то комбинации BOOT-пинов (достаточно вывести наружу устройства кнопку сброса и кнопку замыкающую один из BOOT-пинов). У младших моделей типа линейки STM32F1 встроен только UART бутлоадер. Но можно прошить дополнительно свой с поддержкой USB.

1
23 ...

Information

Rating
1,758-th
Location
Франция
Registered
Activity