Тем не менее, в статье говорится именно про докер — «Например, именно так всё по умолчанию настроено в контейнерах Docker. Рекомендуется создавать пользователя, не обладающего root-правами, и либо встраивать его в образ Docker, либо запускать процесс от имени этого пользователя, вызывая контейнер с флагом -u username.» Вышеуказанные рекомендации бесполезны. Не навредят, но и пользы никакой.
По поводу "13. Запускайте Node.js от имени пользователя, не обладающего root-привилегиями" — несмотря на то, что в контейнере пользователь имеет uid 0 и называется root, реальных рутовых привилегий у него нет, если только контейнер не был запущен с флагом --privileged, либо нужные привилегии не были добавлены через --cap-add. Поэтому в чистом контейнере перенаправить iptables невозможно, а привилегии эффективного пользователя не отличаются от таковых у nobody.
Я не думаю, что тут идет речь о разделении платежей, поэтому объяснение, скорее всего, простое — известно 337 кошельков, но некоторые из них пусты, т.к. получатели писем отрапортовали о полученном письме, но ничего не переводили.
Не вижу, где заявлялось о наблюдении через камеру. «встроил [...] в это сообщение и прямо сейчас вижу, что вы его читаете». Другими словами, «я получил уведомление о том, что вы открыли письмо». Для «наблюдения через камеру» не надо было бы пиксель встраивать.
Ну люди, которые считают, что браузер мог транслировать камеру и рабочий стол без явного подтверждения от WebRTC, и тем паче скрыто запускать всякое, наверняка об этом не знают.
А в чем проблема? Приему tracking pixel лет 25, не меньше. Если письмо не в спаме, то клиент загрузит картинки, а это, в свою очередь, позволит серверу, где хостится эта картинка, понять, что письмо открыли.
Хорошей альтернативой новомодному XMLHttpRequest является <frameset> без border, с нижним фреймом высотой 0 пикселей. Чтобы выполнить т.н. "асинхронный запрос", просто открываем новые документы в этом нижнем скрытом фрейме через , и получаем результаты через document.alldocument.frames._bottom.body.innerHTML. Вот так легко и просто можно избавиться от использования чрезмерно современных технологий с сомнительным будущим.
Генераторы в Firefox поддерживаются с 2013 года, в Chrome и Opera с 2014 года, в Edge с 2015, в Safari с 2016. И это не говоря про node.js. Так что, может, уже можно без regenerator?
В JavaScript имеется лишь один тип чисел — это числа двойной точности с плавающей запятой.
Не совсем. Арифметика с плавающей точкой достаточно медленна, чтобы ее использовать всюду, поэтому движки, как часть оптимизаций, достаточно давно научились определять целые числа, и оптимизировать их соответственно.
С введением всеобщей поддержки typed arrays и asm.js это поведение теперь доступно для пользовательского кода явно. Например, x>>>0 приведет x к unsigned int32, а x|0 приведет к signed int32. В дальнейшем компилятор будет исходить из этого предположения типа, пока код не деоптимизируется. С TypedArray все еще проще в плане приведений типов.
По поводу "13. Запускайте Node.js от имени пользователя, не обладающего root-привилегиями" — несмотря на то, что в контейнере пользователь имеет uid 0 и называется root, реальных рутовых привилегий у него нет, если только контейнер не был запущен с флагом
--privileged, либо нужные привилегии не были добавлены через--cap-add. Поэтому в чистом контейнере перенаправить iptables невозможно, а привилегии эффективного пользователя не отличаются от таковых у nobody.Хорошей альтернативой новомодному XMLHttpRequest является <frameset> без border, с нижним фреймом высотой 0 пикселей. Чтобы выполнить т.н. "асинхронный запрос", просто открываем новые документы в этом нижнем скрытом фрейме через , и получаем результаты через
document.alldocument.frames._bottom.body.innerHTML. Вот так легко и просто можно избавиться от использования чрезмерно современных технологий с сомнительным будущим.Генераторы в Firefox поддерживаются с 2013 года, в Chrome и Opera с 2014 года, в Edge с 2015, в Safari с 2016. И это не говоря про node.js. Так что, может, уже можно без regenerator?
Не совсем. Арифметика с плавающей точкой достаточно медленна, чтобы ее использовать всюду, поэтому движки, как часть оптимизаций, достаточно давно научились определять целые числа, и оптимизировать их соответственно.
С введением всеобщей поддержки typed arrays и asm.js это поведение теперь доступно для пользовательского кода явно. Например,
x>>>0приведетxкunsigned int32, аx|0приведет кsigned int32. В дальнейшем компилятор будет исходить из этого предположения типа, пока код не деоптимизируется. СTypedArrayвсе еще проще в плане приведений типов.2. Обвиняем все остальные реализации в нарушении патентов
3. ?????????????????
4. ВИГОДА!