У меня есть сценарий, который можно назвать ненадежными пользователями, мы должны сделать вызов по линиям этого составил пример:Как отключить разрушение выполнения системной команды
system 'somescript ' + data
Нам необходимо обеспечить, если data == 'filename; dosomethingelse'
затем; экранируются (или любой другой специальный символ. В результате команда оболочки запуск фактически somescript filename\;\ dosomethingelse
или somescript "filename; dosomethingelse"
Есть стандартный способ сделать это?
В совершенно ином примечании он напоминает мне вопросы, когда люди спрашивают, как избежать строк, чтобы они были безопасны для использования в качестве строкового литерала SQL ... правильный ответ «не нужно»; подготовленные заявления - правильный путь. Точно так же правильный способ сделать строки безопасными в качестве аргументов программы - не позволить им приблизиться к оболочке. :-P –
Или как анализировать HTML с помощью регулярных выражений. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –