Pull to refresh

Comments 11

Общее правило проверки всего, что тебе ввел пользователь, еще никто не отменял
У правила должна быть мотивация. Большинство разработчиков не знают об опасности open-uri. Как бы вы валидировали?
UFO just landed and posted this here
Verify your URL/domain например функция на мерчантах должна принимать любой валидный URL а это не только a-z0-9.
UFO just landed and posted this here
Мотивация простая: не верь всему, что вводит пользователь. К тому же, никто не знает о всех возможных косяках, не только в open-uri.

Я бы хорошо подумал перед тем, как позволять пользователю вводить URL, который я должен дернуть со своего сервера. Тут даже при валидном URL’е можно огрести проблем.
>Я бы хорошо подумал перед тем, как позволять пользователю вводить URL, который я должен дернуть со своего сервера. Тут даже при валидном URL’е можно огрести проблем.

Если такая задача поставлена, то ее надо реализовывать.
Возможно, большинство всё-таки знает? Аналогичные проблемы с передачей трубы в open в Perl обсуждались лет 15 назад. Ну и если труба — это экзотика, то уж схема file:/// — наше всё. Если функция принимает URL, то скорее всего она работает и с file:/// схемой. Наконец, даже если вы оставили только http://, это может позволить вашим пользователям проксить трафик через ваш сервис, хачить и DoS'ить чужие серверы от вашего имени и много чего ещё. Естественно, что пользователю нельзя доверять, а как иначе?
> это может позволить вашим пользователям проксить трафик через ваш сервис, хачить и DoS'ить чужие серверы от вашего имени и много чего ещё

более конкретно, как можно досить и чтобы это было реально полезно? SSRF еще можно понять

в open кстати file:/// не проходит а в питонский urllib проходит.

То что большинство НЕ знает я вам гарантирую. Аудировать безопасность рельсов это моя работа, и я знаю о чем говорю.
чтобы читать внешние URL которые скорее всего содержат юзер инпут

Почему скорее всего? Откуда такая уверенность?
Не правильно выразился. Вероятность того что юзер инпут МОЖЕТ быть использован крайне высока. ПОэтому надо было максимально harden-ить ее
Sign up to leave a comment.

Articles