Как заставить bash игнорировать и подписывать команду xargs?

сохраните текст в file.txtи выполните эту команду:

awk 'p; /====/ $p' file.txt | tail -3

выход:

3rd run of script

End of 3rd script
0
08.03.2021, 14:27
1 ответ

Встраивание замены в командные строки приводит к уязвимостям внедрения команд . Это то, что вы видите в действии :вместо (просто ), используемого в качестве строкового аргумента для curl, содержимое resultанализируется как код.

Чтобы предотвратить это, вы можете использовать (сосредоточение внимания только на главной проблеме; возможны другие улучшения):

printf '%s\n' "$result" | xargs -P50 -I@ bash -c 'printf "%s %s\n" "$1" \
  "$(curl --write-out "%{http_code}" -L -s --output /dev/null "$1")"' mybash @
1
18.03.2021, 22:26

Теги

Похожие вопросы