Как правильно обезопасить ввод пользователя при использовании системного вызова Ruby? - PullRequest
0 голосов
/ 26 января 2011

У меня есть приложение Ruby on Rails, которое использует виртуальный кадровый буфер X вместе с другой программой для получения изображений из Интернета. Я структурировал свою команду, как показано ниже: xvfb-run --server-args = -screen 0 1024x768x24 / my / c ++ / app # {user_provided_url}

Каков наилучший способ сделать этот вызов в рельсах с максимальной степенью безопасности от пользовательского ввода?

Ответы [ 2 ]

1 голос
/ 26 января 2011

Возможно, вам не нужно очищать этот вход в рельсах.Если это URL и он в строковом формате, то в нем уже правильно экранированы символы, которые передаются в виде URL для вызова Net :: HTTP.Тем не менее, вы можете написать регулярное выражение, чтобы проверить, что URL выглядит правильно.Вы также можете сделать следующее, чтобы убедиться, что URL-адрес может быть проанализирован:

uri = URI.parse(user_provided_url)

Затем вы можете запросить у объекта соответствующие части:

uri.path
uri.host
uri.port
0 голосов
/ 26 января 2011

Может быть, я ошибаюсь, но почему бы вам просто не убедиться, что данная строка действительно является URL ( URI :: parse ), заключить ее в одинарные кавычки и избежать любой одинарной кавычки ( ') символ, который появляется внутри?

...