В этом и суть этой статьи!
Если вам заказчик говорит «хлеб», это ничего общего со знакомым хлебом не имеет.
Забудьте, что его можно печь или есть, пока такое требование явно не появится.
В последний момент окажется, что хлеб для заказчика — грузовой контейнер для муки в поезде.
И заказчик будет думать, что для вас это должно было быть очевидно с самого начала.
Нет, не лишний. При «изготовлении» хлеба возможно надо провести кучу вычислений и заполнить состояние.
Готовому хлебу совершенно не нужно знать, как его приготовили. А то откроет кто-то исходник класса «Хлеб», а там — целая пекарня.
Вопиющая безграмотность. Вопрос открытым текстом, даже не картинкой.
В робота достаточно ввести всю базу вопросов (допустим, 1000 вариантов) и такая капча на 100% будет пройдена.
Самое досадное, что таким образом уязвимый сервис предлагается людям ставить на свои сайты.
Если не кодить, пройдёт и интерес к разработке архитектуры. Либо в отрыве от реального кода разрабатываемые сферические архитектуры будут всё более худшего качества
А не будет наоборот? На джуниора сразу вываливается каша базовых вещей, синтаксического сахара, API и прочего барахла. Что-то он поймёт, что-то будет использовать без понимания, что-то вообще пропустит.
А гуру, он пережил рождение новых фич (джавист, например, рождение дженериков, а плюсовик — лямбд). Он их ждал годами, читал статьи, как это будет круто в использовании на практике, помнит в каких версиях компилятора они появились первыми.
угу,
Oh, dear => Ах, олень
by the way => купи рельсы
I'll be back => я стану попкой
I saw my honey today => Я пилил мой мед сегодня
I`ve just saw your balance sheet => Видел я ваш гов%$#ый баланс
Как идентифицировать мутексы в глобальном хеше?
По адресу не очень надёжно, ведь mutex может входить в состав объекта, при удалении объекта и создании нового адрес нового мутекса может совпасть с адресом старого, хотя тип объекта-контейнера уже другой
не аксиома. например, был такой случай: у объекта есть подписчики, с которыми он взаимодействует. подписчики пинают методы объекта в своих потоках, а вход в каждый метод защищён блокировкой.
в деструкторе тоже нужно взять блокировку (дождаться, когда подписчик завершит метод объекта, если он сейчас его выполняет). в заблокированном режиме всем своим подписчикам сказать «до свидания, я умираю, отписывайтесь». после чего снять блокировку
>> А что такого страшного в PS скрипте? Он может все то, что может юзер своими руками
тогда в чём смысл запрета на установку программ юзером и внос своих exe-шников
>> «проприетарные микрософтовские форматы» в последнее время являются вполне обычными zip-архивами
в курсе. но как оно с т.з. DLP: «обычный xml»? ок, зелёный свет.
сделать полный парсер со всеми нюансами нереально (для DLP, а не для офисного пакета, конечно). поэтому, когда я вложу в примечание к колонтитулу ячейки таблицы word-документа ole-объект, парсер так глубоко в xml не заберётся, понимая на каком уровне он сейчас находится, что здесь можно встретить, а что нет.
xml расширяем. что парсеру делать, если он встретил неподдерживаемый тэг?
бить тревогу — могут быть ложные срабатывания.
на всякий случай посылать копию офицеру безопасности — да он сам ничерта не понимает в этих xml-тэгах, а документ на вид обычный, открывается без вопросов, видимых утечек не имеет
Ещё был прикол до перехода ms-офиса на XML-форматы.
OLE-контейнер это фактически своя файловая система внутри файла. Там есть фрагментация и версии. Если отредактировал абзац, старые варианты могут остаться в мусоре. При удалении крупного объекта размер файла не сразу уменьшался. Фактически, можно данные прятать в этой помойке и без терморектального анализа не докажешь, то ли в свободных зонах случайный мусор от множества правок, то ли юзер положил туда зашифрованные данные.
Supports file classification of
more than 300 content types,
including:
…
• Archives
без уточнения типа архива. насчёт «глубокого сканирования» (т.е. определения контента с середины файла) не написано. но оно и ресурсов сожрёт…
Но DLP Endpoint (для защиты клиентских машин) умиляет:
Removable storage device rules can also define a device as read only. A typical use of this feature is to allow users to listen to MP3 players, but block their potential use as storage devices.
File access rules determine if a file is an executable by its extension. The following extensions are blocked: .bat, .cgi, .cmd, .com, .cpl, .dll, .exe, .jar, .msi, .py, .pyc, .scr, .vb, .vbs, .ws, and .wsf. In addition, to block files that might be executed from within archives, .cab, .rar, and .zip files are also blocked.
блин, если переименовать .ps1-файл в .mp3, его можно прочитать (кстати, ps1 не в запрещённом списке)
ок, про RAR разработчики смежного продукта слышали.
где-то был такой способ обхода DLP: в excel-файл можно вставить word-файл как OLE-объект, а в него запароленный архив аналогичным способом. DLP как-то не особо силён в расшифровке всех этих постоянно меняющихся проприетарных микрософтовских форматов.
Вас ничего не смущает? Если у нас два потока, параллельно и несинхронизированно выполняют код
1. obj := nil;
2. obj.DoSomething();
то проблема гораздо прозаичнее, чем синхронизация деструктора или нюансы удаления объекта при обнуления ссылки (хотя эти два момента стоят отдельного рассмотрения)
Если вам заказчик говорит «хлеб», это ничего общего со знакомым хлебом не имеет.
Забудьте, что его можно печь или есть, пока такое требование явно не появится.
В последний момент окажется, что хлеб для заказчика — грузовой контейнер для муки в поезде.
И заказчик будет думать, что для вас это должно было быть очевидно с самого начала.
Готовому хлебу совершенно не нужно знать, как его приготовили. А то откроет кто-то исходник класса «Хлеб», а там — целая пекарня.
В робота достаточно ввести всю базу вопросов (допустим, 1000 вариантов) и такая капча на 100% будет пройдена.
Самое досадное, что таким образом уязвимый сервис предлагается людям ставить на свои сайты.
А гуру, он пережил рождение новых фич (джавист, например, рождение дженериков, а плюсовик — лямбд). Он их ждал годами, читал статьи, как это будет круто в использовании на практике, помнит в каких версиях компилятора они появились первыми.
Читаю краткое описание, отзывы, обычно есть и ссылки на геймплей в youtube.
Oh, dear => Ах, олень
by the way => купи рельсы
I'll be back => я стану попкой
I saw my honey today => Я пилил мой мед сегодня
I`ve just saw your balance sheet => Видел я ваш гов%$#ый баланс
По адресу не очень надёжно, ведь mutex может входить в состав объекта, при удалении объекта и создании нового адрес нового мутекса может совпасть с адресом старого, хотя тип объекта-контейнера уже другой
не аксиома. например, был такой случай: у объекта есть подписчики, с которыми он взаимодействует. подписчики пинают методы объекта в своих потоках, а вход в каждый метод защищён блокировкой.
в деструкторе тоже нужно взять блокировку (дождаться, когда подписчик завершит метод объекта, если он сейчас его выполняет). в заблокированном режиме всем своим подписчикам сказать «до свидания, я умираю, отписывайтесь». после чего снять блокировку
тогда в чём смысл запрета на установку программ юзером и внос своих exe-шников
>> «проприетарные микрософтовские форматы» в последнее время являются вполне обычными zip-архивами
в курсе. но как оно с т.з. DLP: «обычный xml»? ок, зелёный свет.
сделать полный парсер со всеми нюансами нереально (для DLP, а не для офисного пакета, конечно). поэтому, когда я вложу в примечание к колонтитулу ячейки таблицы word-документа ole-объект, парсер так глубоко в xml не заберётся, понимая на каком уровне он сейчас находится, что здесь можно встретить, а что нет.
xml расширяем. что парсеру делать, если он встретил неподдерживаемый тэг?
бить тревогу — могут быть ложные срабатывания.
на всякий случай посылать копию офицеру безопасности — да он сам ничерта не понимает в этих xml-тэгах, а документ на вид обычный, открывается без вопросов, видимых утечек не имеет
OLE-контейнер это фактически своя файловая система внутри файла. Там есть фрагментация и версии. Если отредактировал абзац, старые варианты могут остаться в мусоре. При удалении крупного объекта размер файла не сразу уменьшался. Фактически, можно данные прятать в этой помойке и без терморектального анализа не докажешь, то ли в свободных зонах случайный мусор от множества правок, то ли юзер положил туда зашифрованные данные.
Но DLP Endpoint (для защиты клиентских машин) умиляет:
блин, если переименовать .ps1-файл в .mp3, его можно прочитать (кстати, ps1 не в запрещённом списке)
ок, про RAR разработчики смежного продукта слышали.
где-то был такой способ обхода DLP: в excel-файл можно вставить word-файл как OLE-объект, а в него запароленный архив аналогичным способом. DLP как-то не особо силён в расшифровке всех этих постоянно меняющихся проприетарных микрософтовских форматов.
1. obj := nil;
2. obj.DoSomething();
то проблема гораздо прозаичнее, чем синхронизация деструктора или нюансы удаления объекта при обнуления ссылки (хотя эти два момента стоят отдельного рассмотрения)