Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Исследуйте яркий мир с бесконечными головоломками и разнообразными средами в каждой главе. Расширьте свои возможности с помощью захватывающих испытаний на время со специальными типами шариков, которые помогут вам в пути.

Квест Зумба

Казуальные, Три в ряд, Головоломки

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
10
Mercury13
1 месяц назад
Серия Доступно об АйТи

Доступно об АйТи: Тот секретный ингредиент, который испортил сайты на Node.JS⁠⁠

Доступно об АйТи: Тот секретный ингредиент, который испортил сайты на Node.JS IT, Npm, Мессенджер MAX, Волна постов, Длиннопост

Тот самый протестный пакет

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

Библиотека подпрограмм — несамостоятельный набор кусочков программного кода, предназначенный, чтобы их вызывали из других программ. Например, это может быть компонент визуального оформления, или библиотека для доступа к сети, обработки текстов, компьютерной математики…

Но открытый исходный код лучше, чем закрытые библиотеки в виде DLL, те опасны изначально.

Но на Node.JS, распространившейся в серверном вебе системе, есть нечто, сильно упрощающее жизнь одиночке-разработчику, но и позволившее эту атаку.

Пакетный менеджер.

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

Это значит: программа делится на независимо разрабатываемые пакеты, и для каждого указано, какие пакеты ему нужны для работы. Например, в NPM, тот самом менеджере для Node.JS:

Доступно об АйТи: Тот секретный ингредиент, который испортил сайты на Node.JS IT, Npm, Мессенджер MAX, Волна постов, Длиннопост

Пример манифеста Node.JS

Первыми пакетный менеджер стали использовать сборщики дистрибутивов Linux. Потом — языки Python и JavaScript. И только в 2011 подтянулся менеджер Chocolatey для Windows.

Пакетный менеджер никак не проверяет свои пакеты на вредность. И если версия 1.0.0 проверена как безвредная, где гарантия, что 1.0.1 не получит бэкдор? Вот в этом была проблема: вышло вредоносное обновление, и пакетные менеджеры в разных концах мира обновились до него.

Бэкдор — «чёрный ход», секретная функциональность, позволяющая пробраться в систему постороннему.

Другие известные мне пакетные конфузы

2016: NPM left-pad

Азер Кочулу, американский программист турецкого происхождения, имел несколько пакетов на NPM. Один из этих пакетов звался kik. И вот однажды высоколобые канадцы из Kik Messenger просят его переименовать пакет — он отказался, сославшись, что пишет открытый пакет с таким именем. Они ответили настолько эпично, что разрешите уж процитировать письмо.

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

Азер разозлился, назвал авторов письма «корпоративными кондомами», и потребовал целых 30 тысяч долларов. Владельцы NPM вручную передали Kik контроль над пакетом, и тогда Азер со злости удалил все свои проекты — в том числе тривиальный left-pad, дополнявший строку до длины N. Это парализовало Babel (транслятор JavaScript, выдававший код, совместимый со старыми версиями интерпретаторов) и React (крупную фронтэнд-библиотеку, то есть выполняющуюся на браузере).

Пакет восстановили.

2020: комбинирование внутренних и общих пакетов

Если ваш пакет внутренний и вы не хотите его никому показывать, в дополнение ко всеобщему хранилищу можно использовать дополнительное.

И тут хакер, подписывавшийся как Alex Birsan, выяснил такое: если каким-то образом пронюхать имя внутреннего пакета, что-то вроде «auth-paypal», и создать одноимённый общедоступный, можно запустить его в глубинных сетях PayPal, Apple и Tesla. Выдавать внутренние имена — это не единичная ошибка, очень многие фирмы делали это. Хакер получил за это по программе охоты на баги минимум 60 тысяч.

Есть борьба?

Иногда. Допустим, тот же NPM позволяет зафиксировать версию конкретного пакета на 1.0.0, указывать его контрольную сумму. Это позволяет загружать только те пакеты, что прошли ревизию.

А что же на Android?

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

Правда, есть две оговорки — иногда программа для Android представляет собой браузер, показывающий один сайт. Такая прога уязвима настолько же, как и любой другой сайт.

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

А можно встроить бэкдор так, чтобы он прошёл ревизию?

Можно, но это целая шпионская история, о которой когда-нибудь напишу — если смогу описать её захватывающе. Кто разбирается в компьютерах, гуглите «Бэкдор в XZ».

А вот другая уязвимость, Heartbleed — по-видимому, её когда-то упомянули в документах Сноудена, но это простая ошибка. Просто замеченная государственными хакерами раньше, чем независимыми.

Показать полностью 1
[моё] IT Npm Мессенджер MAX Волна постов Длиннопост
1
victorkoch
victorkoch
2 месяца назад

«New Age IPO» Часть 1⁠⁠

«New Age IPO» Часть 1 Инвестиции, Ipo, Nasdaq, Npm, Виктор Кох, Длиннопост

😴 Пробуди меня через время. Вероятно, даже через десять лет главным вопросом на рынке IPO/PRE-IPO останется доступ к аллокации. Я начал свой путь в этом деле в 2011 году, то есть 14 лет назад, что позволяет считать меня ветераном индустрии.

📓Немного про Рюриков и Печенегов

Многие специалисты из фондов, инвестиционных структур и брокерских компаний, которые на меня подписаны, так или иначе связаны с этим рынком. Некоторые пришли в индустрию — в том числе и благодаря мне, — а другие читали мои прогнозы по IPO и изменениям стоимости акций в 2017, 2019 и 2021 годах.

Значительный вклад в популяризацию IPO в России внес Тимур Турлов и Ко из Freedom Finance, открыв этот инструмент для широкой публики. Однако наибольшую роль в развитии сыграли, безусловно, инвестбанкиры и брокер-дилеры США.

Аз, буки, веди

🧐 Рынок IPO развивается волнообразно. Текущая фаза — шестая с момента dotcom bubble конца 90-х. Каждая фаза имела схожие паттерны развития/угасания, начиналась с высокого спроса на акции IPO и высокой доходности. Текущая фаза стартовала с успешного размещения Circle $CRCL, что в профессиональной терминологии инвестбанкиров называется "IPO window".

Первым ключевым игроком, которого должен знать каждый в этой индустрии, был RSP. Основанная в 2004 году, компания стремилась перевести учет сделок из бумажного формата в онлайн. Вдохновением послужило размещение Google 19 августа 2004 года. В то время успех Google был неочевиден, поэтому сделки были единичными, но этого было достаточно, чтобы привлечь внимание инвестбанкиров с Уолл-стрит к secondary рынку. До 2009 года SecondMarket активно просвещал рынок о сути и преимуществах вторичного рынка.

🚀 IPO Facebook

Второе значимое событие, свидетелем которого я стал, — публичное размещение Facebook Inc. 18 мая 2012 года. К тому времени, с 2010 года, многие, кто был вовлечен в венчурный капитал и инвестиционную среду, уже знали о вторичном рынке. Немалую роль в этом сыграл Юрий Борисович Мильнер и его тогда молодой фонд DST Global (основан в 2009 году).

DST Global на тот момент не имел достаточной репутации для прямого доступа к лучшим технологическим компаниям, поэтому скупал акции через тендеры и напрямую у сотрудников. Таким образом, DST Global активно пополнял свой портфель активами ныне легендарных tech-компаний США, одновременно завоевывая доверие инвестбанкиров, которые сыграли большую роль в дальнейшем развитии фондов. В этот период на рынке появилось несколько broker-dealer объединений (RMS, Setter Toronto и множество ныне забытых имен), некоторые из которых существуют до сих пор, но в "олдскульном" режиме.

Глубокое погружение

В 2013 году, когда мой стартап Slinky столкнулся со скандалами на фоне хакерских атак и утечки данных, его оценка в $27M значительно упала из-за потери клиентов, снижения выручки и репутационных рисков [1,2,3]. В том же 2013 году, нуждаясь в средствах, я пригласил инвестбанкиров из SM, которые организовали для меня вторичную сделку. С этого момента я начал глубоко погружаться во вторичный рынок.

Одной из моих первых сделок в роли инвестбанкира, а не продавца акций, стали размещения компаний New Relic Inc., Arista Networks, Inc. и GoPro Inc. Все эти сделки осуществлялись в сотрудничестве с коллегами из SecondMarket, которые ранее помогли мне продать мои собственные акции. Стратегия была проста: я был знаком со многими основателями и сотрудниками из технологической индустрии, которые могли выступать продавцами, что создавало взаимовыгодную ситуацию для всех сторон.

NPM was Born

После успешного 2014 corp dev подразделение Nasdaq заметило активное развитие вторичного рынка и в 2015 году выкупило SecondMarket [1].Барри Силберт был доволен сделкой, поскольку видел будущее, где лидером станет крупный бренд, а не небольшая конторка, похожая больше на шарашку, чем на биржу.

🥺 После поглощения SM наши пути на некоторое время разошлись. Я сосредоточился на работе над собственным стартапом, сольных (неудачных) инвестициях, а также на развитии бизнеса CPaaS-платформы VoxImplant

Продолжение следует

—

Автор: Виктор Кох

Показать полностью
[моё] Инвестиции Ipo Nasdaq Npm Виктор Кох Длиннопост
0
16
CyberDump
CyberDump
2 месяца назад
IT-юмор

Он ещё и не обновлялся почти 10 лет⁠⁠

Он ещё и не обновлялся почти 10 лет Вредоносное по, Npm, Telegram (ссылка), IT юмор, Скриншот, X (Twitter)

Gamespot

Показать полностью 1
Вредоносное по Npm Telegram (ссылка) IT юмор Скриншот X (Twitter)
4
4
user9315307
user9315307
1 год назад

С ноги в IT - бесплатно: 66 JavaScript задач для начинающих⁠⁠

Друзья, в этом посте хочу рассказать, как можно освоить навыки программирования без затрат на дорогостоящие курсы. Главное - только Вы сами можете научиться. Даже за деньги Вас не смогут научить, только дать информацию. Надеюсь мое видео "66 JavaScript задач для начинающих" будет полезным в совершении первых шагов в программировании.

Это видео - отличный пример того, что платить за обучение не обязательно. Современные ресурсы и доступная информация позволяют самостоятельно изучать и развивать навыки в IT. Если у вас есть желание и немного упорства, вы можете "войти в IT" бесплатно!

Всем удачи в обучении и не забывайте - главное начать!

P.S. Любите своё дело!

Показать полностью
IT Программирование Javascript Обучение Npm Nodejs Тестирование Бесплатное обучение Задача Самообразование Код Веб-разработка Учеба Начинающий Онлайн-курсы Репозиторий Саморазвитие Карьера Видео YouTube
0
2
cherkalexander
cherkalexander
1 год назад
Web-технологии

PeerDependencies⁠⁠

PeerDependencies Кросспостинг, Pikabu Publish Bot, React, IT, Программирование, Frontend, Npm

Недавно делал код ревью и заметил, что в pnpm-lock.yaml (альтернатива yarn.lock в pnpm) добавлена 17-я версия реакта, хотя на проекте мы используем 18-ю. Нам не нужно тянуть в проект 2 версии реакта — поэтому идём разбираться.

Дело в том, что в библиотеке react-cheetah-grid, которую мы используем для рендера длинных таблиц, реакт указан в секции dependencies вместо peerDependencies.

dependencies vs peerDependencies

- dependencies: пакеты, которые необходимы для работы вашего приложения и устанавливаются автоматически
- peerDependencies: пакеты, которые должны быть уже установлены в среде, где используется ваш пакет, чтобы избежать конфликтов версий

Чтобы быстро исправить проблему — можно переопределить версию реакта для определённого пакета в pnpm с помощью метода readPackage. Также нужно откатить изменения в pnpm-lock.yaml и запустить pnpm install .


// .pnpmfile.cjs
const package = require('./package.json');

function readPackage(pkg, context) {
if (pkg.name === "react-cheetah-grid") {
pkg.dependencies['react'] = package.dependencies['react'];
pkg.dependencies['react-dom'] = package.dependencies['react-dom'];
}

return pkg;
}

module.exports = {
hooks: {
readPackage,
},
};


Но затем лучше создать ишью в репозитории библиотеки или отправить пул реквест.

https://t.me/cherkashindev/211

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot React IT Программирование Frontend Npm
0
266
tproger.official
tproger.official
1 год назад
Типичный программист

Лицемерие⁠⁠

Лицемерие IT юмор, IT, Программирование, Программист, Картинка с текстом, Microsoft, Github, Npm, LinkedIn
Показать полностью 1
IT юмор IT Программирование Программист Картинка с текстом Microsoft Github Npm LinkedIn
68
DELETED
1 год назад

Test⁠⁠

test

Гайд Gamedev Разработка Unity Unity3D Npm Open Source
2
17
cherkalexander
cherkalexander
2 года назад
Лига программистов
Серия Yandex Music Api

Yandex Music Client для JavaScript⁠⁠

Yandex Music Client для JavaScript Яндекс Музыка, Яндекс, Javascript, Openai, Npm

За последние пару дней новогодних праздников я, наконец-то, сделал то, что собирался сделать пару лет - сгенерировал JavaScript-клиент для Яндекс.Музыки на основе OpenAPI-схемы.

Что это значит? Берётся OpenAPI-схема и скармливается генератору, на основе которой генерируется библиотека на определённом языке программирования, которая может использоваться для отправки запросов на сервер.

👉 Описание OpenAPI-схемы на GitHub

👉 Для генерации клиента используется openapi-typescript-codegen

👉 JavaScript-клиент Яндекс.Музыки на npm - yandex-music-client

👉 Теперь VSCode-плагин для Яндекс.Музыки использует пакет yandex-music-client

Установка

npm i yandex-music-client

Пример использования

import { getToken } from 'yandex-music-client/token';

import { YandexMusicClient } from 'yandex-music-client/YandexMusicClient'

const token = await getToken('your email', 'your password');

const client = new YandexMusicClient({

BASE: "https://api.music.yandex.net:443",

HEADERS: {

'Authorization': `OAuth ${config.token}`

},

});

client.landing.getNewReleases();

https://t.me/cherkashindev/75

Показать полностью
Яндекс Музыка Яндекс Javascript Openai Npm
12
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии