Есть ли способ в php для выполнения команды с аргументами, но без «оболочки».Выполнение команды с параметрами без оболочки в php
Проблема заключается в том, что и exec()
, и shell_exec()
запускают поставляемую строку в оболочке, и поэтому любые введенные пользователем данные должны быть экранированы.
Есть ли способ сделать это нравится:
some_exec(["command","argument","argument])
Как можно было бы сделать это, например, в Python или Java.
Я бы очень мог выполнять команды с аргументами, не избегая некоторых аргументов.
Я работаю над пользовательским интерфейсом для маршрутизатора, а ключ Wifi устанавливается через команду , и прямо сейчас мне нужно избежать строки, которая ограничивает количество символов, которые может содержать ключ. Если i, где не избежать ключа, можно было бы делать инъекции без каких-либо проблем.
Разъяснение Причина, почему это на самом деле раздражает проблема в данном случае является то, что мне нужно выполнить следующую команду:
[email protected][0].key='<the password>'
Проблема в том, что, так как пароль установлен в строка этого пароля, $il|\|t
станет \$ile\|\\\|t
, и проблема в том, что неправильный пароль является допустимым. И поэтому пароль, который был сохранен, не совпадает с введенным пользователем.
И даже если мы вводим пароль в строке мы все еще можем сделать инъецировать как этот ' ; reboot ; '
Только уточните по следующей ссылке [ссылка] http://php.net/manual/en/function.exec.php [/ link] – sam