我最近嘗試使用以下程式碼將貼上發送到pastebin.com:
https://github.com/mefuckin/pastebin-shell/blob/master/pbin
我注意到該腳本似乎沒有發送 api_user_key。第 183 行列出了它:
--data "api_user_key=$api_user_key" \
所以我認為這只是指定其值的問題,如:
api_user_key="VALUE HERE"
然後將其發送到 API。但是,我不確定這部分程式碼的作用(從 174 開始的部分程式碼):
[ $logintopastebin -ne 0 ] && auth_user
api_paste_code=$( cat - )
curl -0 --show-error \
--data "api_dev_key=$api_dev_key" \
--data "api_option=paste" \
--data "api_paste_code=$api_paste_code" \
--data "api_paste_format=$api_paste_format" \
--data "api_paste_private=$api_paste_private" \
--data "api_paste_expire_date=$api_paste_expire_date" \
--data "api_user_key=$api_user_key" \
--data-urlencode "api_paste_name=$api_paste_name" \
--data-urlencode "api_paste_code=$api_paste_code" \
"$api_url/api_post.php"
這部分程式碼是否意味著所有這些參數都會傳送到 API?
答案1
該代碼確實發送了api_user_key
.如果未設定變量,它可能會發送空字串。這腳本包含透過在函數中查詢伺服器來尋找使用者金鑰的程式碼,但僅當您在開頭設定為非零值或傳遞選項之一或在命令列上時auth_user
,才會呼叫該函數。您可以透過在呼叫之後手動設定變數來覆蓋該值,或者在呼叫之前而不是呼叫之前手動設定變量,例如logintopastebin
-u
-l
api_user_key
auth_user
curl
api_user_key=$(cat ~/.passwords/pastebin/api_user_key)
…
if [ -z "$api_user_key" ] && [ "$logintopastebin" -eq 0 ]; then
auth_user
fi
api_paste_code=$( cat - )
curl -0 --show-error \
…
如果您不明白腳本在做什麼,請添加set -x
為第二行,以使其在執行時列印每行的追蹤。