Как стать автором
Обновить
13
0
Vlad Barcelo @vladbarcelo

frontend-костылятор

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

У меня и моих супервизоров всю жизнь в роли программиста ревью как-то был инструментом именно оценки решения задачи. Так как до попадания кода (я писал на js) в репу посредством гит хуков была введена цепочка eslint (в конфиге airbnb) → prettier → юнит тесты → commitlint, а при попытке открыть пул реквест в основную dev-ветку из feature-веток прогонялись е2е тесты в селениуме, то код, попадающий на ревью был уже сравнительно чист, отформатирован и нормально работал — и по моим ощущениям в основном проверялся на некое "качество исполнения" — отметались разнообразные велосипеды, грязные хаки, недокументированные / непонятные куски кода, и прочее подобное гадство (обычно с комментариями, но тут уже как повезёт — попадались и оригиналы с синдромом вахтёра, заворачивающие код с ужасающими пометками а-ля "ЧТО ЭТО ВООБЩЕ ТАКОЕ?" или просто "deny").


Не скажу что всё вышеописанное было вот прямо как-то очень круто или правильно, но удобно было явно. Нет, были конечно неприятные случая когда люди уставали смотреть на ошибки линтера и коммитили с --force, но потом народ перешёл на гитлаб и поставил pre-recieve-хук.


Как-то так.

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


Я взрослый мужик и мне нравится новый BF, CoD и взрывающиеся вертолеты. Как и моему парню. Стратегии для старперов.

Вот это вообще без комментариев. Это так-то надо составлять опросы, мда.

Не сказано про методики на уровне архитектуры — создание небольших микросервисов с задачами "регистрация/логин/удаление", аудит которых прост и дёшев, а выкачивание базы хешей соответственно требует взлома микросервиса, доступного извне, и постоянных запросов к этому микросервису авторизации (привет сетевым экранам и эвристическому анализу трафика между микросервисами). Плюс — hash blinding каким нибудь hmac перед внесением в базу с хранением ключа от блиндинга в HSM.


meh.

Skype стал ужасным, жрущим ресурсы, тормозящим и не удобным в работе.

Приведу в контр-пример VSCode — тоже электрон, но быстрый, ест мало памяти и удобен в работе.

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


Магистр, вы ли это?
Минут 30 где-то, дольше всего я сидел на моменте с «See on web»
На правах того что кто-то выше уже победил, выкладываю решение

На картинке нам явно дают айпи и порт. С портом сразу всё понятно — он явно имеет отношение к числу Пи. С айпишником не всё так просто, цифра 301 сразу намекает на то, что с числами надо что-то сделать. К счастью, куча восьмёрок под айпишником подсказывает нам, что он переведён в восьмеричную систему счисления. Переводим:
301.23.105.103 → 193.19.69.67
Пробуем подключиться телнетом по портам 31, 314, 3141 и 31415. На порту 31415 получаем:


Hello! Use 2^6 chars base. Enjoy!
TG9vayBmb3Igc2lnbnMgaHR0cDovL2dvbmNoYXIudWsvMDU2NDgzOTY1NDc4LmpwZwo=

Уже по виду строки можно сказать что это base64 или base32, а по подсказке 2^6 (это 64) выбираем base64. Декодируем и получаем:


Look for signs http://gonchar.uk/056483965478.jpg

Идём по адресу, смотрим картинку. Видим надпись "В традиционной русской игрушке всегда скрыт глубинный смысл" и приделанную иконку винрара. Очевиднее было только написать капсом "ЭТО РАРДЖИПЕГ!!!111". Распаковываем, на выходе получаем файл ff.txt со следующим содержанием:


----[---->+<]>+.++++++++++++++.>--[----->+<]>-.[--->+<]>---.[++++>-----<]>.---[-->+++<]>.++[->+++<]>.[--->+<]>----.+.>-[----->+<]>.++.

Это программа на эзотерическом ЯП Brainfuck. Гуглим интерпретатор и запускаем программу, получаем:


@NetQuest35

Телеграмм или твиттер. Оказывается, твиттер: https://twitter.com/netquest35


Ты далеко продвинулся, иди смелее дальше! Путь тут: ЙИИ Й ИЙЙЙ ЙИИИИ ИИИЙЙ ЙЙЙЙЙ ЙЙЙЙЙЙ ЙЙИИИ ЙЙЙИИ ИИЙЙЙ ЙЙЙЙЙЙ ИИИИЙ ИИИЙЙ ЙЙЙЙЙЙ ИИИЙЙ ИЙЙЙЙ

Здесь уже интереснее. Это азбука морзе, точки заменены на Й, тире — на И. После декодирования получаем следующий текст:


ВЕБ185.237.98.86

Идём на http://185.237.98.86/, смотрим ролик. Заодно смотрим исходный код страницы и находим следующее:


<!-- ii 
1-1
2-22
2-2
4-1
2-3
5-1
5-2
4-7
4-6
4-9
1-1
5-1
4-3
4-1
4-3
3-15
3-17
-->

Здесь либо повезёт, либо догадаетесь — это шифр, где первое число — номер строки во втором куплете, а второе число — номер буквы. Гуглим lyrics песни, дешифруем:


Wget here whatami

Дёргаем с айпишника файл whatami. Название намекает, поэтому запускаем утилиту file и смотрим что мы только что скачали:


gzip compressed data, last modified: Wed Mar 28 06:01:35 2018, from Unix

Распаковываем, вываливается ещё один файл "whatami". Повторяем процедуру с утилитой file:


POSIX tar archive (GNU)

Распаковываем. Получаем два файла: id_rsa и id_rsa.pub. Это ключи для подключения к ssh. В pub-файле смотрим имя пользователя и адрес, после чего подключаемся, вручную задав ключи:


ssh iamakey@185.237.98.86 -i id_rsa

Помимо системных сообщений о необновлённой убунте, получаем следующие строки:


Hi!
Blaise de Vigenere says: aeqoxacjqcrb.nvg

Очевидно, нам дали зашифрованную строку. Имя "Blaise de Vigenere" однозначно намекает нам на использованный шифр Виженера. Гуглим дешифровалку, понимаем что нужен ключ. Вспоминаем пользователя, под которым заходили на ssh. Вставляем iamakey в качестве ключа и получаем:


seeonwebqqrr.jxy

Здесь я сам уже завис на какое-то время, ибо слова "See on web" я воспринял слишком буквально и сидел гуглил мистический "qqrr.jxy". На самом деле всё гораздо очевиднее — скачиваем qqrr.jxy с нашего айпишника. Снова запускаем утилиту file:


PNG image data, 370 x 370, 8-bit/color RGBA, non-interlaced

Переименовываем, видим qr-код на картинке. Достаём телефон, направляем камеру на код, переходим по закодированной ссылке. Слушаем Queen — We are the Champions. Мы молодцы.

А, qr-код на вашем сервере висел а не в веб-поиске надо было 'смотреть'

Да, получил music-видео We are the Champions от группы Квин, как и выше у человека. Спасибо, было интересно.

Дальше в вебе не найти кроме программ на Malbolge

seeonwebqqrr.jxy

За счет использования I2P, неуязвим для различных *надзоров (сори за мат).

А вот здесь вы, к сожалению, не правы. i2p хорошо защищён (но отнюдь не неуязвим) от внутренней слежки, которая в действия РКН нисколько не входит. Фича РКН — блокировки, и заблокировать i2p вполне реально — достаточно заблокировать reseed-сервера и ограничить доступ к получению списков floodfill-роутеров — и i2pd просто не наладит связь с initial-пирами.

Поздравляю, вы открыли XSS.

Может и так — особо долго я поиском не занимался, сразу захотелось заняться именно созданием кряка, долго хотелось знания приложить к какой-то задаче.

Эх, сейчас бы подходить к обучению и найму на работу с точки зрения корреляций в статистике (!) по социальным (!!) исследованиям.

Характеристики станции не подскажете случаем? Алсо, чем пользовались в качестве увеличителя?

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

Вот всё бы хорошо, но rx-фильтры невыносимо режут возможности. Пробовал перепаять — при напайке плывёт плата телефона, либо, при меньшей температуре, плывёт сам фильтр (и это я ещё не пробовал напаивать новые конденсаторы). Не знаете случайно чем помочь?

Вот кстати по поводу рекламы в так называемых 'неоднозначных' видео рекомендую посмотреть видео h3h3, где довольно подробно описывается эта проблема, и почему YouTube несколько неправильно к ней относится: https://youtu.be/gQ489KjPqlc

2 + 2 = «4» это ещё шуточки для JS:


> '5' - 3
2

Отнимаем int от строки, получаем int. А если наоборот?


> '5' + 3
'53'

А если наоборот, то получаем конкатенацию в строку. Неплохо, правда? Ну хорошо, а если от строки отнять строку?


> '5' - '4'
1

… получаем int!


Ещё немного магии. Строка плюс плюс строка:


> '5' + + '5'
'55'

Конкатенация, вроде всё понятно. Ну-ка ещё раз:


> 'foo' + + 'foo'
'fooNaN'

О как!
Ещё JS забавно воспринимает знаки математических действий:


> '5' + - '2'
'5-2'
> '5' + - + - - + - - + + - + - + - + - - - '2'
'52'

И, напоследок, немного javascript-алгебры:


> var x = 3;
> '5' + x - x
50
> '5' - x + x
5

teh end.


Нет, это всё, разумеется, элементарно объясняется

но понять новичку что такое weak typing + implicit conversions, и почему вообще это всё так работает — это целое удивительное путешествие, ЕВПОЧЯ.

Используйте CSRF-токены во всех формах, применяйте новый атрибут куки-файлов SameSite для защиты от CSRF-атак. Его поддерживают современные версии браузеров.

А вот с этим проблема. На данный момент SameSite поддерживается только в Chrome и Chromium-браузерах.

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


ИМХО — квотирование рабочих мест это плохо и бесполезно. Бороться нужно с причинами проблемы, а не с её последствиями.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность