Я создаю демона, который поможет мне управлять моим сервером. Webmin отлично работает, так же как и открытие оболочки на сервере, но я предпочел бы иметь возможность контролировать операции с сервером UI I, а также предоставлять некоторые функции конечным пользователям.
Демон выберет действия из очереди и выполнит их. Однако, поскольку я буду принимать входные данные от пользователей, я хочу убедиться, что им не разрешено вводить что-то опасное в привилегированную команду оболочки.
Вот фрагмент, который иллюстрирует мою проблему:
def perform
system "usermod -p #{@options['shadow']} #{@options['username']}"
end
Суть, которая объясняет больше: https://gist.github.com/773292
Я не уверен, если для этого случая достаточно типичного ухода и дезинфекции входных данных, и, будучи дизайнером, у меня нет тонны опыта, связанного с безопасностью. Я знаю, что это должно быть очевидно для меня, но его не!
Как я могу гарантировать, что веб-приложение, которое будет создавать и сериализовать действия, не может передать опасный текст в привилегированный процесс, который получает действия?
Спасибо за помощь
отн