Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Получается, согласно этому закону, google (а также яндекс, при наличии у него представительства в США), тоже не могут препятствовать сбору данных и анализу поисковой выдачи в любом объеме.

В Perl, это нечто большее, чем просто обозначение переменной, — это обозначение скалярной переменной и часть системы типизации. На ряду с $, переменная может содержать впереди себя @ или % что означает соответственно список (массив) и хеш (ассоцированный массив). Что в частности позволяет например писать $h{@a} = @b — что означает: присвоение ключам ассоциированного массива %h списка значений заданных массивом @b причем список имён ключей соответственно задан масивом @a. И т.п.

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

Не "возможно", а именно всё это обязательно делается при установке и настройке ос. Какой именно шелл а также версия прочих компиляторов, инструментов и библиотек проверяется/указывается при развёртывании. И отпечатки к при доступе к репозиторию контролируются. Да всё это необходимо делать. Более того для всего кода пишутся тесты и выполняются в среде аналогичной рабочей. А вот alias не проверяется так как является правильным рабочим инструментом с "ожидаемым поведением" так-же как и echo.


Вот конкретно установка alias на echo — и написание чувствительного к этому кода — грабли. Код чувствительный к этому писать нельзя или можно надеяться что никогда не будет установлен alias — с этим вроде всё ясно.

Конечно лучше. Но исходная задача была использование echo с приватными данными. Её нужно выполнять как в моём примере.


с учетом того, что вы контролируете ваше окружение

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

про злоумышленников-владельцев VPS предоставляющих shared sites

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


Сейчас получается что вы вроде как формируете такой сценарий где нет злоумышленника под задачу где есть злоумышленник. Это есть изменение условий задачи. Если в вашей задаче нет злоумышленника то и защищать не нужно — это хорошая задача. В реальности имеется вероятность что есть злоумышленник. Это могут быть дыры в сайте или человеческий фактор, и т.п. не важно как он появился и какие у него цели — он должен быть лишён малейшей вероятной возможности получить доступ к данным.

Всё же следует учитывать то что на echo может быть установлен alias например с целью логгирования или ещё за какой надобностью. Хотя бы даже и временный alias. Так что скрипты и действия должны быть написаны и выполняться с учётом того что echo может не являться встроенной командой.

Про echo по всей видимости вы правы, даже для программы echo лежащей в текущей папке необходимо указать путь ./ для её запуска. Есть всё же возможнотсь и echo заставить работать по другому, например при помощи alias но это может быть только по ошибке/фиче сделаной кем-то из самих админов но это не будем рассматривать. Но всё же такой подход необходимо если не использовать то знать обязательно. Так как в следующий момент это окажется не echo а другая команда.


А по поводу:


Если у вас есть подозрение, что на этом же сервере сидит злоумышленник и ждет момента прочитать secret.key, пока на нем пару милисекунд есть права для чтения — лучше сразу поменять сервер =)

Пока что разделямый хостинг не отменили. И вот пока он существует, все команды управления на нём выполняются в среде где сидит такой злоумышленник. Так-же и на хостинге/облаке и т.п., где часть выполняемых задач являются предоставляемым сервисом. Тоесть такой VPS и т.п., где клиент-владелец может например из панели устанавливать скажем софт. То клиент-владелец этого VPS и есть этот злоумышленник. Если имеются данные (не только пароли) которые к клиенту не должны попасть то их необходимо защищать подобным образом.

если опасаться того, что пароль при запуске программы:


можно будет увидеть в списке процессов, где отображается вся командная строка со всеми аргументами,

то такую команду тоже нельзя запускать:


$ echo "secretpassword" > secret.key; chmod 600 secret.key

тогда также и нельзя допускать вероятность чтения такого файла и права доступа должны быть установлены до записи в файл или в момент записи, поэтому:


$ touch secret.key && chmod 600 secret.key && cat >> secret.key
password<enter><eof>

или


$ (umask 0177 && cat > secret.key)
password<enter><eof>
Вы не смешивайте тёплое с мягким. При чём тут конфликты имён?

Теплое с мягким это свойства одного и того же объекта, эти свойства являются частью одной системы. Чем теплее тем мягче — всё взаимосвязано, лёд как вы знаете из твёрдого в переходит в жидкое как вы знаете при определенных условиях.


Всё в комплексе разрабатывалось и привело к тому что есть и по отдельности нет смысла рассматривать. Вы же описали задачу в которой есть конфликт имён и влияние элементов которые распирают. Если бы не распирали то и проблемы конфликта имен бы никто не заметил. Вот и не смешивали бы сами.

Кто-то приходит, кто-то проходит мимо, это дело вкуса.


Механизм css так устроен что одно на другое очень сильно влияет, один только clearfix чего стоит. Одна из причин почему появился flex. Всё собрано в один глобальный css с глобальными именами. Это проблема вызвана самим css, в котором нет пространства имен. Здесь рассмотрены разные методы решения этих проблем. Их не навязывают, можете их не использовать это дело вкуса.


А то что у кого то в отладчике прописано временно для отладки показывать .dialog_main вместо .main[erucqi] никого другого не запутает.

Группы могли бы всё назвать по разному, для этого им потребуется общий реестр. Если бы был реестр то имена были бы не .main[erucqi], .main[ifdofi] и .main[reoo] а например .dialog_main, .form_main, .calendar_main. То есть при отладке разница будет лишь в именах.


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


Вот если бы это были не всё таки отличающиеся суффиксом имена css классов, а объекты разных классов языка программирования имеющие одинаковые имена но определенные в разных местах и имеющие разную реализацию. Такой код будет ещё интересней отлаживать.

Вообще такое неизбежно при разработке подсистем группа разработки может именовать внутренние классы как будет удобно. Для этого в c++ используется namespace а в js да разные классы могут быть объявлены в разных scope иногда могут совпадать имена, при этом сами они будут разными. Но они должны использоваться только внутри своих подсистем и не быть доступными снаружи для пользователя данной библиотеки или подсистемы. Если они должны быть видны снаружи они обычно должны иметь общий префикс в имени. При отладке обычно такие классы используются внутри своих подсистем и отлаживаются при отладке своих подсистем и покрываются тестами. Поэтому при отладке системы которая использует эти подсистемы на прямую работать с такими внутренними классами не должно быть необходимости.

Что-то невероятное вообще написано: "css классы с одинаковым именем и разными стилями"? Или имеется в виду класс из языка программирования то тогда наверно надо говорить об объекте, т.к. класс только характеризует каким может быть объект, но у объекта не может быть имени (если мы не дадим ему такого свойства).

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

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

Вуз конечно вузу рознь и методичка методичке тем более рознь. Некоторые может и можно выбросить. А некоторые как раз наоборот упрощены и включают всё самое необходимое изложеное понятным образом. От автора или коллектива авторов зависит. Не без причины же говорят "методичка есть — идем сдавать". И не только сдавать но и для практической работы. Наши все достижения в том числе самые передовые в мире созданы людьми учившимися по методичкам и писавшими эти методички.

Этот ref используется для получения ссылки на наш элемент. React вызывает функцию обработчик прописанную в ref передеавая ей DOM элемент когда компонент монтируется и null когда компонент демонтируется. Документация рекомендует избегать использования этой возможности. Собственно что конкретно делается уже ответили (в поле filterTextInput сохранили ссылку для последующего использования).

Речь идёт в частности о состоянии самого компонента. Например выпадающий список (DropDown). Как минимум имеет собственное состояние открыто (open). Когда на него кликнули он открывается и показывает содержимое (open:true), пока что-либо не выберут или пока оно не закроется по другому поводу (open:false).

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность