既存のビジネスはフロントエンドの Angular.JS シングルページ アプリケーションを完全に使用しており、すべてのリクエストは ajax 経由で送信されます。
今度はクライアント側で Youpaiyun にファイルを直接アップロードしたいと思います。角度ファイルのアップロードを試みましたが、送信された結果は
でした。400: 受け入れられません、署名がありません
パケット キャプチャにより、ポリシーと署名のフォーム データがまったく送信されていないことがわかりました。
これは私が書いたものです:
この github プロジェクトのこれとこの問題を参照しました
どうすればいいですか?
私からも 2 つの質問があります:
世界只因有你2017-05-15 16:51:07
この問題を参照しました
署名のセキュリティ問題が解決されていれば、ファイルは正常にアップロードできます。ありがとうございます。
解決策:
为情所困2017-05-15 16:51:07
こんにちは、まず次の 2 つの質問に答えさせてください:
signature の署名には form_api_secret
が含まれているため、フロントエンドに直接記述すると確かにセキュリティ上の問題が発生します。他の人が form_api_secret
を取得した場合、自分自身でそれを記述することができます。フォームはファイルをスペースに送信し、トラフィックを使用します。 form_api_secret
的,所以若在前端直接写时,确实会存在安全问题:其他人拿到你的form_api_secret
,就可以自己编写表单把文件提交到你的空间,并使用你的流量了。
policy 能使用 base64 在前端生成。虽然 policy 是 encode 参数内容,不存在安全问题,但因为 $signature = md5($policy.'&'.$form_api_secret);
$signature = md5($policy.'&'.$form_api_secret);
であるため、前述のセキュリティ上の問題が依然として残ります。その上。
🎜
🎜 コードの質問に関しては、@PenaFong が回答するよう招待されています。 🎜给我你的怀抱2017-05-15 16:51:07
http://stackoverflow.com/questions/24443246/angularjs-how-to-upload-multipart-form-data-and-a-file
http://uncorkedstudios.com/blog/multipartformdata-file-upload-with -angularjs