LINUX.ORG.RU

Небезопасные параметры по умолчанию в проектах на базе Rails

 ,


0

1

В Rails компоненте популярного сервиса совместной разработки программных проектов Github обнаружены несколько уязвимостей. Егор Хомяков нашел и описал уязвимости в сервисе Github. Разработчики Github устранили уязвимости и уточнили пользовательское соглашение сервиса.

Уязвимости массового присвоения параметров в Rails далеко не новость. Более того, угроза массового присвоения параметров хорошо задокументирована в главном руководстве проекта Rails и в других источниках. Новость в том, что даже высококвалифицированные разработчики продолжают упускать угрозу массового присвоения параметров из виду. Реакция проекта Rails ожидается.

★★★★

Последнее исправление: Tima_ (всего исправлений: 2)

Ответ на: комментарий от Tima_

Пожалуйста.

Ну, раз уж тут все поздоровались и раскланялись, как в английском клубе, можно, для приличия обсудить и саму новость.

Там что-то было про то, что Егор насильно, сломав защиту, пропихнул патч, я не путаю?

deb
()

Егор Хомяков нашол и описал уязвимости в сервисе Github

Good job!

cipher ★★★★★
()

высококвалифицированные разработчики :)))

kerneliq ★★★★★
()

Перехожу на cvs.

plm ★★★★★
()
Ответ на: комментарий от deb

Как я понимаю, Егор сначала нашел косметические помарки типа изменения времени поста и сообщил об это гитхаберам. Гитхаберы, как им свойственно, смотрели на эти помарки сквозь пальцы (это я домысливаю). Егор сегодня решил побаловаться более серьезной дырой без предупреждения и отпоститься на HackerNews. HackerNews взорвался, опять же, как это свойственно HackerNews - все хотят поиграть в Арингтона. Ну и закрыли его аккаунт.

Tima_ ★★★★
() автор топика

В моделях надо использовать attr_protected, а ещё лучше attr_accessible. Ничего ужасного не случилось.

kmeaw ★★★
()

А что рельсы? Сам аргумент *splat в языке никто не отменял. Нужно проверять тщательные данные, вот и всё.

anonymous
()

ну если руки из жопи, то тут никакие правила безопасности не помогут.. новость не о чём

DILIN ★★★★★
()
Ответ на: комментарий от anonymous

Отреагируют Рельсы. Взломали то их репозиторий.
Скорее всего сделают что-то tainted/untained:
DHH
Good suggestion from @nk:. Mark params as tainted and have create/update_attributes bark if not untainted via #slice and friends.

Tima_ ★★★★
() автор топика
Ответ на: комментарий от tensai_cirno

> Как по мне так проверять надо и в контроллере, и в модели, и в базе тож.

DRY, DRY, DRY

О, на клиенте ещё.

Tima_ ★★★★
() автор топика
Ответ на: комментарий от Tima_

Эта проблема хорошо известная. Есть её решение - либо присваивать параметры по одному либо использовать attr_protected с параметром :as. Не понимаю как можно было в популярном проекте и не увидеть это. Что за разработчики пошли!

psp13
()
Ответ на: комментарий от psp13

не увидеть это.

Надо хоть немного понимать, как работают роуты, контроллеры, HTTP, и таких ошибок просто не будет.

tensai_cirno ★★★★★
()

РЕШЕТО

anonymous
()
Ответ на: комментарий от DILIN

ну если руки из жопи, то тут никакие правила безопасности не помогут

теоретически, на php тоже можно писать безопасных код, но это мало кто делает. так и с рельсами - можно, но мало кто заморачивается.

anonymous
()
Ответ на: комментарий от beka

Для Ъ:

That was pretty funny. Firstly, I could write post from 1234 year or 4321. Then, I could make a post pretending i am DHH. That was funny too.

Then I could wipe any post in any project. That wasn't that funny but pretty dangereous. It got more curious. Today I can pull/commit/push in any repository on github. Jack pot.

Today I can pull/commit/push in any repository on github.
Это победа!

beka
()
Ответ на: комментарий от shrub

Ясно, спасибо.
Я почему-то подумал, что закрыли его аккаунт на хэкерньюз.

beka
()

Именно по этому я против всяких автоматических обновлений параметров. Этим грешит и Django. По этому только Pylons только MCV.

stalkerg ★★★★★
()
Ответ на: комментарий от anonymous

теоретически, на php тоже можно писать безопасных код,

«ты дурак по субботам или как ?» (с) Федот Стрелец )

пхп это язык, А рельсы это фрамеоворк ? Ты думаешь тама пишут ? наскрофольдят поправят и вперед...

половину рельсовиков что я знаю даже руби знают поверхностно (

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Ну понятно что быдлокодеров много развелось в последнее время. Но я как то лучше думал о github. Это ж элементарно, об этом в рельсовском Security Guide расписано.

psp13
()
Ответ на: комментарий от stalkerg

Этим грешит и Django.

Этим «грешат» быдлокодеры. В Django есть формы, и не использовать их — преступление против здравого смысла.

k_andy ★★★
()

Уязвимости массового присвоения параметров в Rails

registr_globals в рельсах? Оно через php.ini отключается?

anonymous
()

I'm not done yet. Why I do this? Since guys in rails issues ingored me and my issue I got spare time to test it on the first website i had in mind. github.

Ах, как это по-взрослому!

anonymous
()

Рельсовое быдлокодерство скоро перегонит уровень PHP.

shahid ★★★★★
()

Думаю, им стоит всё на Symfony переписать. Там хотя бы валидация форм есть (лишние параметры не передашь), а в рельсах получается, нет.

ForwardToMars
()
Ответ на: комментарий от anonymous

Ах, как это по-взрослому!

Да. Вполне. Первую уязвимость же он раскрыл.

AVL2 ★★★★★
()

решето.. кругом одно решето

artless
()
Ответ на: комментарий от pevzi

они его еще и забанили?

Правильно сделали. Что это за детсад: «меня сразу не послушали, я им отомщу» ?

alpha ★★★★★
()

Спасибо, новость интересная.

Насколько я понял, проблему создали программисты, а не админы. Или, иначе: админу ( не прогаммисту ) об этой проблеме надо знать, но всё что он может сделать - это искать подобные ляпы в коде через утилиту git://github.com/mhartl/find_mass_assignment.git и пинать разработчиков ?

У меня есть несколько инстансов rails ( puppetmaster ), вот и беспокоюсь :)

router ★★★★★
()

Это косяк сугубо программиста. Рельсовая версия register_globals из пыхи :) Никогда не думал что это столь эпично раздуют. Ещё 5 лет назад работал с рельсами (старый проект на 1.1, который только собирались двигать на 2.1) и безопасник нашёл этот косяк. Пофиксили. Но столь эпичного срача в честь этого никто и представить не мог. Как всегда: PR - наше всё. Чувак взломал github :) Рельсам этого никогда не забудут. Фикс, правда, абсолютно идиотский. Он сломает горы сайтов.

naquad
()
Ответ на: комментарий от pevzi

Вот вам ещё пара аналогичных фраз:

Сбили пешехода на пешеходном переходе.

Не зря я пешеходные переходы стороной обхожу.

Китаец уронил вазу стоимостью $2000.

Не зря я избегаю китайцев.

burjui
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.