curl命令上传文件到开启CSRF的Django站

Django默认开启csrf防跨站,因此需要在提交信息时同样带上csrf.

# 每次都获取csrf,也可以用固定的
csrf=`curl -s -o /dev/null -c --url 'http://example.com/' | grep 'csrf' | awk '{print NF}'`

# 提交
curl --request 'POST' --url 'http://example.com/' --cookie "csrftoken={csrf}" --form "username=user" --form "password=pwd" --form "csrfmiddlewaretoken=${csrf}" --form "[email protected]"

其中表单的key根据实际值填写.