Size: a a a

2020 August 25

SR

Sergey Rubanov in WebSec/LifeSec
Dmitry Zakharov
Джаваскрипт имеет баг с this. И это баг, а не фича. Ни один язык из популярных контекст не теряет.
какой баг?
источник

DZ

Dmitry Zakharov in WebSec/LifeSec
Когда контекст теряешь. Это конечно можно обходить через arrow functions теперь
источник

DZ

Dmitry Zakharov in WebSec/LifeSec
Но суть есть суть
источник

SR

Sergey Rubanov in WebSec/LifeSec
с чего ты взял, что это баг?
источник

DZ

Dmitry Zakharov in WebSec/LifeSec
Такого нигде нет) чуваки проебались, но уже поезд ушел и оформили дефект в стандарт, это как im coffeepot пасхалка в http стандарте - да такое бывает
источник

SR

Sergey Rubanov in WebSec/LifeSec
это не так
источник

SR

Sergey Rubanov in WebSec/LifeSec
все работает как и планировалось. как и пасхалка была добавлена намеренно, в общем-то
источник

DZ

Dmitry Zakharov in WebSec/LifeSec
Намерено, это я вкурсе
источник

SR

Sergey Rubanov in WebSec/LifeSec
было бы очень удивительно, если бы без использования специального синтаксиса this брался из внешнего окружения
источник

SR

Sergey Rubanov in WebSec/LifeSec
(не говоря о том, что на верхнем уровне нет еще более внешнего окружения)
источник

НС

Никита Сковорода... in WebSec/LifeSec
Sergey Rubanov
все работает как и планировалось. как и пасхалка была добавлена намеренно, в общем-то
+
источник

SR

Sergey Rubanov in WebSec/LifeSec
по твоей логике, Дим, может и arguments надо без стрелочных функций внешний брать? =)
источник

AI

Artsiom Ivanov in WebSec/LifeSec
Никита Сковорода
Линтеру тоже нельзя полностью доверять, почти все нестилистические правила обходятся.
Но он может найти пачку ошибок.

Надо помнить, что тс не панацея, и что рантайм проверки нужны.
Но он полезный. Если не полагаться на него через чур сильно, чтобы отломать другие проверки и сделать хуже.
тут возникает вопрос, где доверять, а где проверять? "не полагаться на него через чур сильно" - явной границы доверия нет ((
источник

НС

Никита Сковорода... in WebSec/LifeSec
Artsiom Ivanov
тут возникает вопрос, где доверять, а где проверять? "не полагаться на него через чур сильно" - явной границы доверия нет ((
Проверять везде где и в жс же.
Например, там, где в библиотеку кормят входные данные, или где данные прилетают от юзера.
И там, где они используются и их тип критичен.
источник

НС

Никита Сковорода... in WebSec/LifeSec
Потому что юзеру без доп.валидации никто не объяснит что жсон должен быть строго определенной структуры.

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

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

AI

Artsiom Ivanov in WebSec/LifeSec
есть наш модуль, если обложить все внешние источники данных(от других модулей, от юзера, от БЕ) валидацией, мы в безопасности?
источник

НС

Никита Сковорода... in WebSec/LifeSec
То есть, если у вас там конкатенация числа в строку с sql зачем-то (привет, ормы), то всегда стоит в рантайме проверять, что мы таки число конкатенируем.
источник

НС

Никита Сковорода... in WebSec/LifeSec
(лучше не строить sql конкатенацией, но некоторые ормы не могут себе такое позволить, пример реальный)
источник

НС

Никита Сковорода... in WebSec/LifeSec
Никита Сковорода
То есть, если у вас там конкатенация числа в строку с sql зачем-то (привет, ормы), то всегда стоит в рантайме проверять, что мы таки число конкатенируем.
Не руками проверять, а в обёртке, впрочем
источник

AI

Artsiom Ivanov in WebSec/LifeSec
Artsiom Ivanov
есть наш модуль, если обложить все внешние источники данных(от других модулей, от юзера, от БЕ) валидацией, мы в безопасности?
расширю: внутри нашего модуля нету "any", включены все "strict" флаги
можно ли доверять типам внутри нашего модуля?
источник