Size: a a a

2020 August 25

a

artalar in WebSec/LifeSec
Никита Сковорода
А где спека на тс?
😅
источник

a

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

M

MaxGraey in WebSec/LifeSec
Никита Сковорода
Проверять везде где и в жс же.
Например, там, где в библиотеку кормят входные данные, или где данные прилетают от юзера.
И там, где они используются и их тип критичен.
А вот как выдумаете что будет в том же Rust и serde json если ты будешь ожидать одну схему данных описанную в структуре а прилетит содершенно другая?) А что будет в таком же случае в Хаскеле? Какой бы нибыл строготипизированный язык, работа с IO должна осуществляться очень аккуратно с кучей проверок
источник

НС

Никита Сковорода... in WebSec/LifeSec
MaxGraey
А вот как выдумаете что будет в том же Rust и serde json если ты будешь ожидать одну схему данных описанную в структуре а прилетит содершенно другая?) А что будет в таком же случае в Хаскеле? Какой бы нибыл строготипизированный язык, работа с IO должна осуществляться очень аккуратно с кучей проверок
Ну я и не говорил что не нужно а других языках проверять.

Но в тс надо это делать в сильно большем количестве случаев/мест чем в расте.
источник

M

MaxGraey in WebSec/LifeSec
Вообще то во всех статически типизированных языках информация о типах не попадает в рантайм. Исключение только RTTI и рефлексия, которые не все языки обладают или они опцилнальны
источник

M

MaxGraey in WebSec/LifeSec
Никита Сковорода
Ну я и не говорил что не нужно а других языках проверять.

Но в тс надо это делать в сильно большем количестве случаев/мест чем в расте.
Так я же и говорю, что проблема в TS скорее это soundness и недостаточная строгость. Вот если у него будут номинальные типы, если при чтении из массива компилятор будет заставлять тебя проверять на null / undefined то есть возвращать тип T | undefined а не просто тип T для arr[index] то тогда будет намного лучше в плане защиты от рантайм ошибок, но в то же время внесет излишнюю вербозность как в Rust
источник

НС

Никита Сковорода... in WebSec/LifeSec
MaxGraey
Так я же и говорю, что проблема в TS скорее это soundness и недостаточная строгость. Вот если у него будут номинальные типы, если при чтении из массива компилятор будет заставлять тебя проверять на null / undefined то есть возвращать тип T | undefined а не просто тип T для arr[index] то тогда будет намного лучше в плане защиты от рантайм ошибок, но в то же время внесет излишнюю вербозность как в Rust
источник

M

MaxGraey in WebSec/LifeSec
Думаю что gradual typing для JS не нужен, Тем более в таком виде. Уж лучше dart. Ну или hegel. Но хегель очень сырой пока что
источник

a

artalar in WebSec/LifeSec
MaxGraey
А вот как выдумаете что будет в том же Rust и serde json если ты будешь ожидать одну схему данных описанную в структуре а прилетит содершенно другая?) А что будет в таком же случае в Хаскеле? Какой бы нибыл строготипизированный язык, работа с IO должна осуществляться очень аккуратно с кучей проверок
в хаскеле, на сколько знаю, ты можешь работать с IO только через валидаторы, которые гарантируют тип
источник

НС

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

a

artalar in WebSec/LifeSec
Никита Сковорода
Ну я и не говорил что не нужно а других языках проверять.

Но в тс надо это делать в сильно большем количестве случаев/мест чем в расте.
С gql не особо. С рестом можно runtypes какой-нибудь, а юзеринпут в основном затайпен
источник

M

MaxGraey in WebSec/LifeSec
Никита, а не оффтоп ли все это здесь? Может лучше это обсуздать в чате по JS или Typescript?
источник

НС

Никита Сковорода... in WebSec/LifeSec
MaxGraey
Никита, а не оффтоп ли все это здесь? Может лучше это обсуздать в чате по JS или Typescript?
Оффтоп, кажется. Давай забьём.
источник

JD

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

SR

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

SR

Sergey Rubanov in WebSec/LifeSec
источник
2020 August 26

НС

Никита Сковорода... in WebSec/LifeSec
Вышел Chrome 85.

Обзорное видео: https://www.youtube.com/watch?v=htAiPOarIwI

Изменений в нём довольно много, я писал о них ранее тут (DevTools Chrome 85), тут (Hoidini Properties and Values в CSS), тут (WebHID API и потоковые запросы Fetch), тут (что нового появилось в бете Chrome 85), тут (улучшения доступности PDF) и тут (content-visibility: auto).

Также есть статья со списком устаревших и убранных фич: https://developers.google.com/web/updates/2020/07/chrome-85-deps-rems
источник

НС

Никита Сковорода... in WebSec/LifeSec
источник

НС

Никита Сковорода... in WebSec/LifeSec
Csp bypass это (довольно) эпично
источник

НС

Никита Сковорода... in WebSec/LifeSec
Гораздо более серьёзная уязвимость была обнаружена некоторое время назад в Chromium. Она позволяла полностью обойти все CSP правила на любой платформе в браузерах Chrome, Edge, Opera и других на основе Chromium версий с 73 по 83. Для обхода CSP достаточно было указать javascript: в атрибуте src айфрейма.

https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/
источник