@nodejs_ru

Страница 107 из 2748
Дмитрий
31.07.2016
22:00:23
npm default "scripts":{"preinstall": "node-gyp rebuild"} If there is a binding.gyp file in the root of your package, npm will default the preinstall command to compile using node-gyp

@vkurchatkin ?

Vladimir
01.08.2016
01:23:46
https://github.com/babel/phabricator-to-github

Roman
01.08.2016
04:55:42
йау

Google
Roman
01.08.2016
04:55:46
есть вопрос

существует ли адекватный sanitizer жс кода?

задача - чекать есть ли во входящем жсе методы поста и гета

редиректов

или еще чего нибудь

Aleksey
01.08.2016
04:57:08
regex? :D

Roman
01.08.2016
04:57:16
грубо

Aleksey
01.08.2016
04:57:29
В строку, и поехал.

Roman
01.08.2016
04:57:39
плюс накосячить могу

плюс не знаю подводных методов которыми это можно обойти

Aleksey
01.08.2016
04:58:14
Я не знаю другого решения.

Алексей
01.08.2016
05:02:10
https://www.owasp.org/index.php/Category:Attack Векторов атак - очень много. Начиная с банальной SQL-injection, интересного ReDOS, и совсем уж необычного для меня - HTTP Response Splitting

Никита
01.08.2016
05:21:56
Google
Никита
01.08.2016
05:22:20
Ты хочешь недоверенный код запускать?

Roman
01.08.2016
05:22:29
С какой целью, извиняюсь?
чуть ниже описал, суть в валидации входящего жс кода от постов и гетов

Никита
01.08.2016
05:22:42
В смысле от постов и гетов?

Roman
01.08.2016
05:22:43
Ты хочешь недоверенный код запускать?
не совсем, но думаю суть та же

Никита
01.08.2016
05:22:54
Не надо так делать.

Roman
01.08.2016
05:23:00
от любых запросов

Никита
01.08.2016
05:23:12
В смысле от любых запросов?

Roman
01.08.2016
05:23:18
Не надо так делать.
суть не в том надо ли или нет

я прекрасно знаю что не надо, но клиенту не докажешь

Никита
01.08.2016
05:23:44
Ты имеешь ввиду что тебе жс код из запросов приходит или ты хочешь, чтобы он не исполнял запросы?

Roman
01.08.2016
05:23:50
В смысле от любых запросов?
ajax запретить весь к хуям)

Алексей
01.08.2016
05:23:52
ты хочешь чтобы клиент отправлял на сервер код и код на сервере выполнялся? так?

Алексей
01.08.2016
05:24:01
или на клиенте?

Roman
01.08.2016
05:24:17
ты хочешь чтобы клиент отправлял на сервер код и код на сервере выполнялся? так?
код выполнялся на клиенте после того как типок закинет его на сервак

вот

Никита
01.08.2016
05:24:44
На том же самом клиенте, как и тот, что его закинул?

Roman
01.08.2016
05:24:45
надо валидировать жс на бэке и если все ок сохранять в папочку

и подключать это говно на клиенте пот ом

Никита
01.08.2016
05:24:57
Или на другом?

Google
Roman
01.08.2016
05:25:05
на том же

Никита
01.08.2016
05:25:20
То есть он может только себе поднасрать?

Roman
01.08.2016
05:25:28
да и команде своей

группе скажем так

Ярослав
01.08.2016
05:26:16
изначально плохая идея ?

Алексей
01.08.2016
05:26:16
можно сделать ход конем - создать Webworker на клиенте- там выполнялся чтобы код http://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-string а в томже webworker создать proxy document, window и прочие обьекты и их валидировать и синхронизировать

Roman
01.08.2016
05:27:02
так, хорошо

что мне это даст?

Алексей
01.08.2016
05:27:23
webworker - полностью изолированное окружение

Roman
01.08.2016
05:27:56
хорошо, понял

тут вторая проблема

Roman
01.08.2016
05:28:06
фронт у аппы на ангуларе

:\

Алексей
01.08.2016
05:29:38
https://github.com/aiboy/jsdom4browser ( тут есть пример как подточить jsdom - чтобы он работал в WebWorker - на примере D3.js но будет работать и с angular.js )

Ярослав
01.08.2016
05:33:33
webworker - полностью изолированное окружение
на самом деле нет. У него есть доступ много к чему снаружи, но это можно всё подпилить напильником. Там другая проблема в том, что нельзя сделать вайтлист доступных технологий, т.е. если завтра появится какая-нибудь особенность, которую смогут использовать хакеры через вебвокер, то нашему автору придётся снова брать напильник.

опять же, если на клиенте нет прокси, то и подпилить нормально не получится

Алексей
01.08.2016
05:43:42
ну и более надежный вариант ( относительно ) - с помощью http://esprima.org - парсить JS код и получать из него AST - http://esprima.org/demo/parse.html после чего забанить все AST Node всех типов во всех комбинациях, после этого взять реальный код который должен работать и начинать whitelist-ить AST Node и их комбинации

Никита
01.08.2016
05:44:47
да и команде своей
Очень плохая идея.

Roman
01.08.2016
05:45:01
Очень плохая идея.
да вообще говно как по мне

Google
Roman
01.08.2016
05:45:16
предустановленные либы еще куда не шло

придумали хуйню

Никита
01.08.2016
05:46:13
Так.

Во-первых, запросы ты не выпарсишь.

Никак.

Никакие еспримы тут не помогут особо.

Во-вторых, если это прямо очень надо

то как минимум надо это всё исполнять не в том же орижине

Алексей
01.08.2016
05:58:24
Ну или вот еще 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

Admin
ERROR: S client not available

Andrey
01.08.2016
05:58:44
ajax запретить весь к хуям)
Нужно не только ajax запрещать, можно и старыми методами отправить данные на сервер, это просто создать картинку с url сервера и в url параметрах поставить все что хочешь

Никита
01.08.2016
06:41:22
Это.

Без выполнения отсанитайзить жс не выйдет.

А с выполнением — тоже не очень тривиально

regex? :D
отсанитайзь регулярками http://www.jsfuck.com/

а с выполнением надо следить за детерминированностью

И обходить все возможные ветки. Что не совсем тривиально, т.к. может быть что-нибудь вида a[(Math.random()+'')[2]]()

придумали хуйню
Тебе скорее сэндбокс нужен.

А не санитайзер

Roman
01.08.2016
06:54:28
А в айфрейм затолкать это говно нормально?

Google
Alxander
01.08.2016
06:55:42
С таким подходом баги потом из всех щелей вылезать будут.

Никита
01.08.2016
06:58:29
валидация регулярками это даже не смешно

правильный динамический анализ с обходом всего — долго, сложно, и да, баги ловить ещё хз сколько потом

так что санитайзер отпадает точно.

надо сэндбоксить, вопрос где.

Alxander
01.08.2016
07:01:53
с каким из?
Да с любым.

Никита
01.08.2016
07:02:13
https://github.com/jterrace/js.js/ ещё есть, это спайдермонкей обмазанный емскриптеном

но да, баги тоже будут. и тормоза.

Alxander
01.08.2016
07:02:27
Может тогда уж сразу DSL свой сделать?

Никита
01.08.2016
07:03:27
Собственно да, вопрос — нафига это всё надо-то?

Я сомневаюсь, что конечная задача сформулирована как «исполнять жс безопасно».

Для чего оно?

js.js всего 3 метра жскода и всего в 200 раз медленее =)

Никита
01.08.2016
07:06:00
Беги.

А ещё — ты планируешь защищаться от выжирания этой штукой всей оперативочки на компе?

lamo2k
01.08.2016
07:07:37
+1 за песочницу!

Иван
01.08.2016
07:08:27
Согласен с @lamo2k123 ну и бежать тож выход

Alxander
01.08.2016
07:08:33
Приходит такой тимлид и говорит: «А давайте будем жс на говно валидировать»

Страница 107 из 2748