Roman
грубо
Aleksey
В строку, и поехал.
Roman
плюс накосячить могу
Roman
плюс не знаю подводных методов которыми это можно обойти
Aleksey
Я не знаю другого решения.
Алексей
https://www.owasp.org/index.php/Category:Attack
Векторов атак - очень много. Начиная с банальной SQL-injection, интересного ReDOS, и совсем уж необычного для меня - HTTP Response Splitting
Roman
чуть ниже описал, суть в валидации входящего жс кода от постов и гетов
Roman
не совсем, но думаю суть та же
Roman
от любых запросов
Roman
суть не в том надо ли или нет
Roman
я прекрасно знаю что не надо, но клиенту не докажешь
Roman
ajax запретить весь к хуям)
Алексей
ты хочешь чтобы клиент отправлял на сервер код и код на сервере выполнялся? так?
Roman
второе
Алексей
или на клиенте?
Roman
Roman
вот
Roman
надо валидировать жс на бэке и если все ок сохранять в папочку
Roman
и подключать это говно на клиенте пот ом
Roman
на том же
Roman
да и команде своей
Roman
группе скажем так
Ярослав
изначально плохая идея 😂
Алексей
можно сделать ход конем - создать Webworker на клиенте- там выполнялся чтобы код
http://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-string
а в томже webworker создать proxy document, window и прочие обьекты и их валидировать и синхронизировать
Roman
так, хорошо
Roman
что мне это даст?
Roman
Алексей
webworker - полностью изолированное окружение
Roman
хорошо, понял
Roman
тут вторая проблема
Roman
фронт у аппы на ангуларе
Roman
:\
Алексей
https://github.com/aiboy/jsdom4browser
( тут есть пример как подточить jsdom - чтобы он работал в WebWorker - на примере D3.js но будет работать и с angular.js )
Ярослав
webworker - полностью изолированное окружение
на самом деле нет. У него есть доступ много к чему снаружи, но это можно всё подпилить напильником. Там другая проблема в том, что нельзя сделать вайтлист доступных технологий, т.е. если завтра появится какая-нибудь особенность, которую смогут использовать хакеры через вебвокер, то нашему автору придётся снова брать напильник.
Ярослав
опять же, если на клиенте нет прокси, то и подпилить нормально не получится
Алексей
ну и более надежный вариант ( относительно ) - с помощью http://esprima.org - парсить JS код и получать из него AST - http://esprima.org/demo/parse.html
после чего забанить все AST Node всех типов во всех комбинациях, после этого взять реальный код который должен работать и начинать whitelist-ить AST Node и их комбинации
Roman
да вообще говно как по мне
Roman
предустановленные либы еще куда не шло
Roman
придумали хуйню
Алексей
Ну или вот еще 1 решение - уже от Google
https://developers.google.com/caja/
https://github.com/google/caja/blob/master/doc/html/es5-talk/es5-talk.pdf
https://github.com/google/caja
Andrey
ajax запретить весь к хуям)
Нужно не только ajax запрещать, можно и старыми методами отправить данные на сервер, это просто создать картинку с url сервера и в url параметрах поставить все что хочешь
Roman
А в айфрейм затолкать это говно нормально?
Александр
С таким подходом баги потом из всех щелей вылезать будут.
Александр
Да с любым.
Александр
Может тогда уж сразу DSL свой сделать?
Roman
Не сомневайся
Roman
Это самацель
lamo2k
+1 за песочницу!
Ivan
Согласен с @lamo2k123 ну и бежать тож выход
Александр
Приходит такой тимлид и говорит: «А давайте будем жс на говно валидировать»
lamo2k
run Вася run
Александр
Это не я вопрос задал если что, это так, мысли на тему.
Александр
Сегодня ты санитизируешь жс, а завтра пишешь свой браузер на canvas.
Александр
Я чёт тоже себя на такой мысли поймал. В хорошее время живём.
Александр
Дико.
Александр
Там же проблема вроде в том, что надо Аякс весь анально огородить.
Александр
Может секьюрити политики заюзать?
Александр
Типа отдельный айфрейм со своими политиками.
Roman
@kimslava93 проблема только в аяксах?
Александр
Вопрос настолько флеймовый, что все уже и забыли кто его задал 😁
Roman
Александр
Можно даже без отдельного айфркйма. Просто только к своему домену доступ дать.
Roman
Александр
http://www.html5rocks.com/en/tutorials/security/content-security-policy/
Roman
ну я думаю не только аяксы сворачивать нпдо
Александр
Там, на самом деле, вторую версию уже подвезли, но вам и первой хватит.
Александр
В свг много дыр. Особенно в фаерфоксе.
Viacheslav
@kimslava93 проблема только в аяксах?
надо короче разрешать js только для построения графов с данными, всякие анимашки (ну если ооочень надо) но запрещать такую херь как рекламу пихать илил левые запросы делать.
Viacheslav
в обещм js чисто для работы с данными.
Александр
Александр
DSL
Sem
Ребят настроить вебпак чтобы сделать хотрелоад сервера?
Sem
то есть сейчас он настроен на хотрелоад клиентской части
Sem
но я хочу чтобы и когда я меняю файлы серва, он тоже релоадился автоматом
lamo2k
В серверный конфиг вебпака добавить плагин
Aleksey
Они все так долго собираются.
Aleksey
А, 5 минут это норма, хорошо.
Aleksey
У меня метеор стартовал за минуту, вроде.