Size: a a a

JavaScript — русскоговорящее сообщество

2020 April 22

A

AntiPlayer in JavaScript — русскоговорящее сообщество
Nikolay
Шанс зафейлиться на 55000 номерах подряд: (1-1/18000)^55000 - ~5%, значит, шанс все-таки угадать код для одного из 55000 номеров - 95%
Ты нигде в знаках не ошибся? Я что-то не вкурю формулу)
источник

u

undefined in JavaScript — русскоговорящее сообщество
А вы знали, что html-комментарии работают в js-коде (и в ноде в том числе)?
function a() {
   --> Comment
   <!-- Comment
   const a = 10 <!-- Comment
}

Ссылка на спецификацию https://www.ecma-international.org/ecma-262/6.0/#sec-html-like-comments
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Nikolay
Шанс зафейлиться на 55000 номерах подряд: (1-1/18000)^55000 - ~5%, значит, шанс все-таки угадать код для одного из 55000 номеров - 95%
Близко!

Мой расчёт:
Можно попробовать 5 из 100000 кодов на один номер.
Шанс угадать = 5/100000, а шанс НЕ угадать = 1-(5/100000) = 99995/100000.
Когда не угадали, берём другой номер.
Шанс НЕ угадать X номеров подряд = (99995/100000)^X, вероятности перемножаются X раз.
Значит, шанс угадать хоть один из них = 1-((99995/100000)^X).

Для удачи в 95% подставляем: 1-((99995/100000)^X)=95/100, отсюда
(99995/100000)^X=5/100
Log((99995/100000)^X)=Log(5/100)
X*Log(99995/100000)=Log(5/100)
X=Log(5/100)/Log(99995/100000)
console.log(Math.ceil(Math.log(5/100)/Math.log(99995/100000)))
// 59914

Но такая высокая удача не нужна, возьмём 75%:
console.log(Math.ceil(Math.log(25/100)/Math.log(99995/100000)))
// 27726


Однако, важно не только количество попыток, но и время, которое придётся затратить:
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Переслано от Алексей Клименко
Провёл тестовую атаку в полуручном режиме.

За час удалось постучать почти в ~150 случайных номеров (правда примерно на трети из них уже точно были чужие аккаунты – для таких я старался делать всего три подбора кода, а не пять, как для чистых), использовав почти 700 случайных смс-кодов. Выходной айпишник тора приходилось менять вместе со сменой атакуемого номера и перезапуском клиента, но точное число взятых адресов я не залогировал.

Лотерею не выиграл ))
источник

АК

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

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
undefined
А вы знали, что html-комментарии работают в js-коде (и в ноде в том числе)?
function a() {
   --> Comment
   <!-- Comment
   const a = 10 <!-- Comment
}

Ссылка на спецификацию https://www.ecma-international.org/ecma-262/6.0/#sec-html-like-comments
Знал, это мне в Opera12 пороло циклы типа while(i-->0), потому что парсер видел --> и сходил с ума…
источник

u

undefined in JavaScript — русскоговорящее сообщество
Алексей Клименко
Знал, это мне в Opera12 пороло циклы типа while(i-->0), потому что парсер видел --> и сходил с ума…
но ведь у тебя декремент и знак больше...
комменты не должны тут парсится
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
undefined
но ведь у тебя декремент и знак больше...
комменты не должны тут парсится
Ну ай-да ещё в Internet Explorer проверим? ))

Очевидно, что не должны. Но с тех пор я пишу while((i--)>0).
источник

u

undefined in JavaScript — русскоговорящее сообщество
Алексей Клименко
Ну ай-да ещё в Internet Explorer проверим? ))

Очевидно, что не должны. Но с тех пор я пишу while((i--)>0).
и твой случай решился бы просто поставив пробел между ними -- >
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Для меня это как
var tags = ['</div>','</script>','</style>'], надо просто запомнить подобные крайности.
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
undefined
и твой случай решился бы просто поставив пробел между ними -- >
Ну пробел может удалить в будущем какой-нибудь умник. А вот скобки снимать – это вряд ли.
источник

P

Paruyr in JavaScript — русскоговорящее сообщество
Вопрос по RxJS и redux-observable
export function withHandleError(epic: AppEpic): AppEpic {
 return function wrappedEpic(...args: Parameters<AppEpic>): ReturnType<AppEpic> {
   return epic(...args).pipe(
     catchError(anyError => {
       const error = toError(anyError);
       return merge(of(mapErrorToAction(error)), wrappedEpic(...args));
     }),
   );
 };
}

Я написал обертку которая ловит ошибки и перезапускает эпики
Это может вызвать утечку памяти?
Я посмотрел код catchError, он перезапускает подписки, подчищая старые
В профайлере тоже вроде чисто
источник

P

Paruyr in JavaScript — русскоговорящее сообщество
Я смотрю в Chrome DevTools
У меня каждый раз когда триггерю ошибку, растет память. Но когда нажимаю кнопку сборки мусора - память падает, как было изначально. Те вроде как утечкинет, но есть ощущение что этот код говно
источник

P

Paruyr in JavaScript — русскоговорящее сообщество
Подскажите пожалуйста все ли я правильно делаю? )
источник

P

Paruyr in JavaScript — русскоговорящее сообщество
Все, я разобрался
catchError отдает вторым аргументом поток
Спасибо за внимание))
источник

RB

Random Balance in JavaScript — русскоговорящее сообщество
Paruyr
Все, я разобрался
catchError отдает вторым аргументом поток
Спасибо за внимание))
Всегда рады помочь. Обращайся. 👻
источник

P

Paruyr in JavaScript — русскоговорящее сообщество
И код проще, и память в порядке )
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
https://stackoverflow.com/a/39109790
– Тут написано, что если я сделаю fetch в режиме mode: 'no-cors', то я не смогу читать Body или заголовки, но его можно использовать либо чтобы воткнуть например в img, либо чтобы закешировать.

Вопрос: и как мне воткнуть непрозрачный ответ в тег <img>? Так-то я бы Blob забрал и objectURL из него сделал.
источник

AM

Andrey Mishagin in JavaScript — русскоговорящее сообщество
Такой кейс, нужно отловить на страничке вставку по ctrl + v
Сделал как в примере ниже, текст отлавливает, а вот изображения не хочет. Не понимаю какой параметр передать в .getData()
https://developer.mozilla.org/en-US/docs/Web/API/Element/paste_event
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Andrey Mishagin
Такой кейс, нужно отловить на страничке вставку по ctrl + v
Сделал как в примере ниже, текст отлавливает, а вот изображения не хочет. Не понимаю какой параметр передать в .getData()
https://developer.mozilla.org/en-US/docs/Web/API/Element/paste_event
источник