По поводу sql:
используйте параметризированные sql запросы или какой-нибудь ORM или конструктор sql запросов (по-моему, сейчас каждый язык/фреймворк что-нибудь такое имеет).
По поводу xss:
Вырезать регуляркой тег script, или вообще не выполнять дальше действий, если такой есть в запросе. Экранируйте, заменяйте теги спецсимволами и т д.
Некоторые продвинутые фреймворки сами не дают сохранить такой код, пишут что-то вроде "Обнаружено потенциально опасное содержимое запроса"
По поводу запроса:
Вы отправляете входящие данные в консоль. Как я понимаю, в любом случае это будет команда Linux, может вредоносная, может разрешенная, но команда.
Значит легкого пути не будет. Какие варианты можно рассмотреть:
1) Если количество разрешенных команд конечно, то просто присвойте им порядковые номера типа localhost:3000/command=1, localhost:3000/command=2...
И в зависимости от переданного номера выполняйте команду.
2) Если количество команд не ограничено, то тут разве что завести пользователя с ограниченными правами, чтобы все команды, переданные запросом, выполнялись под ним.
3) Если количество команд ограничено, но у них есть опциональные параметры (типа там путь к аудитории, имя создаваемого файла и т д), то, как уже предложил
dimonchik2013, забейте все допустимые шаблоны в regex.