Size: a a a

2020 November 26

DK

Dima Korolёv in BeerJS Moscow
Никита Сковорода
Особенно если в ревью нагрузить ещё "а теперь вы дополнительно проверяете что несанитизированные переменные не окажутся в цсс".
Хотя вообще-то библиотека построения стилей должна это сама делать.
несанитанизированные переменные — это вообще не очень здоровая вещь, независимо от того, куда они попадают
источник

MK

Michael K in BeerJS Moscow
Никита Сковорода
Особенно если в ревью нагрузить ещё "а теперь вы дополнительно проверяете что несанитизированные переменные не окажутся в цсс".
Хотя вообще-то библиотека построения стилей должна это сама делать.
С зеро рантайм бай дизайн не выйдет же
источник

НС

Никита Сковорода... in BeerJS Moscow
Dima Korolёv
ну и мне не очень понятно, каким образом остальные CSS-in-JS решения защищены вот от этого, например
В lit-element так сделать нельзя. Он не даёт пихать строки в цсс напрямую.
Линк: https://lit-element.polymer-project.org/guide/styles

В linaria, которую принесли выше, стили статические, а аргументы пихаются через css variables, так что всё тоже выглядит ок.
источник

НС

Никита Сковорода... in BeerJS Moscow
Dima Korolёv
несанитанизированные переменные — это вообще не очень здоровая вещь, независимо от того, куда они попадают
Да. И поэтому гарантия того, что они не будут несанитизированными, должна быть автоматической.
А не на уровне ручной проверки.
источник

SR

Sergey Rubanov in BeerJS Moscow
linaria ок да
источник

SR

Sergey Rubanov in BeerJS Moscow
давно смотрел на нее
источник

AS

Andrey Sёmin in BeerJS Moscow
@chicoxyzzy коворкать завтра го?
источник

DK

Dima Korolёv in BeerJS Moscow
Никита Сковорода
Да. И поэтому гарантия того, что они не будут несанитизированными, должна быть автоматической.
А не на уровне ручной проверки.
так emotion-то тут при чем?)
источник

НС

Никита Сковорода... in BeerJS Moscow
Dima Korolёv
так emotion-то тут при чем?)
Потому что эта гарантия должна быть на самом последнем шаге.
То есть на шаге построения css из аргументов.
источник

НС

Никита Сковорода... in BeerJS Moscow
@dimakorolev например, для аналогии.

XSS не решается санитизацией входных данных.
Он решается автоматическим экранированием по умолчанию на уровне построения готового хтмл.
Все современные библиотеки так делают (детали реализации отличаются, но суть одна, ${'<b>boo</b>'} — это текст <b>boo</b>, а не жирное boo).
Ну и дополнительно CSP поверх для надёжности.
источник

Ф

Фенька in BeerJS Moscow
то есть микроволновки при включении должны проверять не кот ли внутри
источник

FL

First Last in BeerJS Moscow
Фенька
то есть микроволновки при включении должны проверять не кот ли внутри
сушили же собаку)
источник

FL

First Last in BeerJS Moscow
добавь еще ифчик))
источник

FL

First Last in BeerJS Moscow
оп, да это ж AI
источник

Ф

Фенька in BeerJS Moscow
First Last
сушили же собаку)
ну вот тут 2 вида решения, люди должны думать перед тем как засунуть туда котособаку, или микроволновка должна проверять перед включением
источник

SR

Sergey Rubanov in BeerJS Moscow
Andrey Sёmin
@chicoxyzzy коворкать завтра го?
я в отпуске)
источник

Ф

Фенька in BeerJS Moscow
мнне подойдет первый варик
источник

SR

Sergey Rubanov in BeerJS Moscow
Sergey Rubanov
я в отпуске)
можно поковоркать антаппд
источник

НС

Никита Сковорода... in BeerJS Moscow
Фенька
ну вот тут 2 вида решения, люди должны думать перед тем как засунуть туда котособаку, или микроволновка должна проверять перед включением
только вот аналогия ложная
потому что в этом случае автоматический вариант прост в реализации, дешёв и надёжен (в отличии от микроволновки с проверкой на кота)
а первый вариант (переложить всё на людей) дорогой (вот им ещё делать нечего) и очень склонен к провалу
источник

Ф

Фенька in BeerJS Moscow
а еще твой вариант отрубает все попытки «шаг влево шаг вправо»
источник