2017-04-16 11 views
0

CURLを使用してhttpsプロトコルでウェブサイトにログインし、特定のフォルダにファイルをアップロードする必要があります。私は、HTTPS経由でCSRF対応のウェブサイトのカールを介してウェブサイトにログインすることができました。しかし、ファイルをアップロードできません。私は、HTTPSプロトコルのためにCSRFトークンが有効になっていると思います。 私はCSRFトークンを処理し、HTTPSプロトコルを介してCURLコマンドを使用してファイルをアップロードする方法を理解する必要があります。ShellのCURLを使用してCSRF対応のWebサイトでhttps経由でファイルをアップロードする方法は?

ログインフォーマット:(ワーキング)

curl -u username:password https://ftp.example.com 

アップロードフォーマット:(動作しない)

curl -k -T "./testfile.txt" -u "username":"password" https://example.com/upload/ 

注1:私は現在、このコマンドをRHEL 6

注2を実行しています:CSRFトークンを処理する必要があります。

注3:ftpおよびsftpプロトコルを使用してログイン/アップロードできます。

私はこれに対する解決策を非常に高く評価します。ありがとう!

答えて

0

ワーキングソリューション!

最後にいくつかの私は、このための解決策を見つけるために管理方法を

我々は最初の接続でCSRFトークンをダウンロードして、接続の第二の試みでダウンロードしたCSRFトークンを使用する必要があるすべて。以下のサンプルスクリプトを見てみましょう。

#!/bin/sh 

logs_path="/home/usr/logs" #Change your path here 
my_username="testuser"  #Change your username here 
my_password="testuser"  #Change your password here 
host_name="localhost.com" #Change your sitename here 

touch "$logs_path/testfile.test" 

curl -k -c "$logs_path/cookies.txt" -u "$my_username":"$my_password" "https://$host_name:443" > /dev/null 2>&1 

curl -k -b "$logs_path/cookies.txt" -T "$logs_path/testfile.test" -u "$my_username":"$my_password" "https://$host_name:443/puts/" > /dev/null 2>&1 

status="$?" 
if [[ $status == 0 ]]; then 
echo -e "\nSuccess!" 
else 
echo -e "\nFailed!" 
fi 
関連する問題