【发布时间】:2015-01-31 00:54:18
【问题描述】:
我在 Bash 脚本中有如下内容:
URL="${1}"
IFS= read -d '' code << "EOF"
import urllib2
from BeautifulSoup import BeautifulSoup
page = BeautifulSoup(urllib2.urlopen("${URL}"))
images = page.findAll('img')
for image in images:
print(image["src"])
EOF
python <(echo "${code}")
如何更改此处文档的定义方式(例如不使用read),以便在此处文档中解析变量${URL},然后将此处文档存储在变量@987654324中@?目前here-document已经成功存储到变量中,但是here-document中的变量并没有被解析。
【问题讨论】:
-
我强烈建议在
sys.argv或os.environ上传递URL,而不是替换到您的脚本中——那样会存在代码注入漏洞。考虑一个包含"+__import__('shutil').rmtree('/')+"的URL。