JsF**k
От: · Великобритания  
Дата: 01.03.16 09:48
Оценка: 29 (3) +2 :)
Это круто! Не думал, что эзотерический язык программирования может оказаться настолько полезен
http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: JsF**k
От: · Великобритания  
Дата: 02.03.16 12:22
Оценка: 21 (1)
Здравствуйте, DOOM, Вы писали:

DOO>·>А вообще интересно. Допустим, ebay и правда хочет разрешить вставку пользовательских js скриптов (интересно зачем?) на страницу, что сделать чтобы обеспечить безопасность?

DOO>В идеале, надо сделать свой интерпретатор, который гарантирует выполнение только тех команд, которые заложил автор. Понятно, что писать интерпретатор JS на JS — то еще удовольствие (очевидно, что это не eval(str) будет )
Ну да, это в самом общем случае. И это не только сам язык, но и скажем DOM-дерево, css-селекторы, етс. Например, дать полный доступ к частям страницы описания товара, но не к кнопке login самого сайта.

DOO>·>По-моему, единственное нормальное решение — это поддержка на уровне браузеров, чтобы можно было создавать безопасные js-песочницы, изолированные контексты внутри страницы.

DOO>Т.е. по сути Java с жесткой системой разрешений. Но это надо менять браузеры — хотя кое-что уже есть (например, код из js может попросить разрешить всплывающие окна, push уведомления и т.п. — просто все это, насколько я знаю, не стандарт ни разу, а зависит исключительно от разработчика браузера).
Так тут ещё один уровень санд-боксинга нужен. Одно дело, когда разработчики ebay помещают скрипт, который просит разрешение, а другое дело я, как продавец, помещаю в описание товара скрипт, который прикидывается родным ebay-евским, например, рисуя фишинговое окно аутентификации.

DOO>·>Либо использовать не js, а какой-то более строгий язык, как минимум без eval, с верификацией.

DOO>см. выше — свой интерпретатор на JS
Надо же, есть такое уже https://github.com/NeilFraser/JS-Interpreter
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: JsF**k
От: DOOM Россия  
Дата: 02.03.16 07:14
Оценка:
Здравствуйте, ·, Вы писали:

·>Это круто! Не думал, что эзотерический язык программирования может оказаться настолько полезен

·>http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/
В очередной раз всем напомнили, что фильтрация ввода и экранирование символов — полумеры.
Спасет только жесткая типизация пользовательских данных.
Re[2]: JsF**k
От: · Великобритания  
Дата: 02.03.16 10:01
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>·>Это круто! Не думал, что эзотерический язык программирования может оказаться настолько полезен

DOO>·>http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/
DOO>В очередной раз всем напомнили, что фильтрация ввода и экранирование символов — полумеры.
DOO>Спасет только жесткая типизация пользовательских данных.
А вообще интересно. Допустим, ebay и правда хочет разрешить вставку пользовательских js скриптов (интересно зачем?) на страницу, что сделать чтобы обеспечить безопасность?

По-моему, единственное нормальное решение — это поддержка на уровне браузеров, чтобы можно было создавать безопасные js-песочницы, изолированные контексты внутри страницы.
Либо использовать не js, а какой-то более строгий язык, как минимум без eval, с верификацией.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: JsF**k
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 02.03.16 11:30
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Спасет только жесткая типизация пользовательских данных.


Спасет только от инъекций (XSS, SQLi, XMLi, XPATHi, XXE и т.п.) и только до тех пор, пока не понадобится тип "arbitary text"
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: JsF**k
От: DOOM Россия  
Дата: 02.03.16 11:34
Оценка:
Здравствуйте, ·, Вы писали:

·>А вообще интересно. Допустим, ebay и правда хочет разрешить вставку пользовательских js скриптов (интересно зачем?) на страницу, что сделать чтобы обеспечить безопасность?

В идеале, надо сделать свой интерпретатор, который гарантирует выполнение только тех команд, которые заложил автор. Понятно, что писать интерпретатор JS на JS — то еще удовольствие (очевидно, что это не eval(str) будет )


·>По-моему, единственное нормальное решение — это поддержка на уровне браузеров, чтобы можно было создавать безопасные js-песочницы, изолированные контексты внутри страницы.

Т.е. по сути Java с жесткой системой разрешений. Но это надо менять браузеры — хотя кое-что уже есть (например, код из js может попросить разрешить всплывающие окна, push уведомления и т.п. — просто все это, насколько я знаю, не стандарт ни разу, а зависит исключительно от разработчика браузера).

·>Либо использовать не js, а какой-то более строгий язык, как минимум без eval, с верификацией.

см. выше — свой интерпретатор на JS
Re[3]: JsF**k
От: DOOM Россия  
Дата: 02.03.16 11:36
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Спасет только от инъекций (XSS, SQLi, XMLi, XPATHi, XXE и т.п.) и только до тех пор, пока не понадобится тип "arbitary text"

Могу поспорить

Спасет, например, от HTTP response splitting или request forging — просто типизация тут более широкое понятие (правильнее валидация — когда мы точно знаем что может встретиться во входных параметрах и умеем корректно обработать каждый случай).
Re[5]: JsF**k
От: DOOM Россия  
Дата: 02.03.16 12:24
Оценка:
Здравствуйте, ·, Вы писали:

·>Так тут ещё один уровень санд-боксинга нужен. Одно дело, когда разработчики ebay помещают скрипт, который просит разрешение, а другое дело я, как продавец, помещаю в описание товара скрипт, который прикидывается родным ebay-евским, например, рисуя фишинговое окно аутентификации.

Ну да... Но это уже какой-то космос для современных web-приложений

DOO>>см. выше — свой интерпретатор на JS

·>Надо же, есть такое уже https://github.com/NeilFraser/JS-Interpreter
Честно говоря, я и не сомневался
Re[4]: JsF**k
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 02.03.16 13:41
Оценка:
Здравствуйте, DOOM, Вы писали:

KV>>Спасет только от инъекций (XSS, SQLi, XMLi, XPATHi, XXE и т.п.) и только до тех пор, пока не понадобится тип "arbitary text"

DOO>Могу поспорить
DOO>Спасет, например, от HTTP response splitting или request forging —

Дык это тоже инъекции

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.