Spec-Zone.ru › Ruby 3.4

Инъекция команд

Некоторые методы ядра Ruby принимают строковые данные, содержащие текст, который будет выполнен как системная команда.

Не следует вызывать их с неизвестными или необработанными командами.

К этим методам относятся:

  • Kernel.exec

  • Kernel.spawn

  • Kernel.system

  • `команда` (метод обратной кавычки) (также вызывается выражением %x[command]).

  • IO.popen (когда вызывается не с "-").

Некоторые методы выполняют системную команду только если заданное имя пути начинается с |:

  • Kernel.open(command).

  • IO.read(command).

  • IO.write(command).

  • IO.binread(command).

  • IO.binwrite(command).

  • IO.readlines(command).

  • IO.foreach(command).

  • URI.open(command).

Обратите внимание, что некоторые из этих методов не выполняют команды, когда вызываются из подкласса File:

  • File.read(path).

  • File.write(path).

  • File.binread(path).

  • File.binwrite(path).

  • File.readlines(path).

  • File.foreach(path).

Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API