cari

Rumah  >  Soal Jawab  >  teks badan

Storan Awan Youpai - Bolehkah saya menggunakan API penyerahan borang melalui Angular.JS

Perniagaan sedia ada sepenuhnya menggunakan aplikasi muka depan Angular.JS satu halaman, dan semua permintaan dihantar melalui ajax.

Sekarang saya mahu memuat naik fail terus ke Youpaiyun pada bahagian klien Saya mencuba muat naik fail sudut, tetapi hasil yang diserahkan ialah

400: tidak terima, terlepas tandatangan

Tangkapan paket mendedahkan bahawa data borang untuk dasar dan tandatangan tidak diserahkan sama sekali.
Inilah yang saya tulis:

    $scope.onFileSelect = function ($files) {
        var file = $files[0]; //这里我只传单个文件
        $scope.upload = $upload.upload({
            url: 'http://v0.api.upyun.com/youguess',
            method: 'POST',
            headers: {'Content-Type': 'multipart/form-data'},
            data: {
                signature: 'youguess',
                policy: 'youguess'
            },
            fileFormDataName: 'file',
            file: file,
            formDataAppender: function (formData, key, value) {
                if (angular.isArray(value)) {
                    angular.forEach(value, function(v) {
                        formData.append(key, v);
                    });
                } else {
                    formData.append(key, value);
                }
            }
        }).progress(function (event) {
            console.log(parseInt(100.0 * event.loaded / event.total));
        }).success(function (data, status, headers, config) {
            console.log(data);
        });
    };

Saya merujuk kepada ini dan isu ini projek github ini

apa yang perlu saya lakukan?

Saya juga ada dua soalan:

  1. Saya boleh terus menyulitkan tandatangan dengan md5 dan menulisnya Adakah terdapat sebarang isu keselamatan jika md5 ini ditulis terus pada klien?
  2. Bolehkah dasar dijana oleh pengekodan base64 dalam js Kerana saya fikir demo rasmi dijana dalam php. Jika ia boleh dijana pada bahagian hadapan, adakah penulisan proses ini di bahagian hadapan juga akan menyebabkan isu keselamatan?
高洛峰高洛峰2775 hari yang lalu667

membalas semua(4)saya akan balas

  • 世界只因有你

    世界只因有你2017-05-15 16:51:07

    Merujuk isu ini
    Selagi isu keselamatan tandatangan diselesaikan, fail boleh dimuat naik dengan jayanya. Terima kasih semua.

    Penyelesaian:

    • Alih keluar pengepala
    • Alih keluar formDataAppender

    balas
    0
  • 为情所困

    为情所困2017-05-15 16:51:07

    hai Biar saya jawab dua soalan anda yang seterusnya dahulu:

      Tandatangan
    • tandatangan termasuk form_api_secret, jadi jika anda menulisnya terus di bahagian hadapan, memang akan ada isu keselamatan: jika orang lain mendapat form_api_secret anda, mereka boleh menulis borang mereka sendiri dan menyerahkan fail ke ruang anda dan menggunakan trafik anda.

    • dasar boleh dijana pada bahagian hadapan menggunakan base64. Walaupun dasar ialah kandungan parameter pengekodan dan tiada isu keselamatan, tetapi disebabkan $signature = md5($policy.'&'.$form_api_secret);, isu keselamatan yang disebutkan di atas masih akan berlaku.

    Mengenai soalan kod, @PenaFong telah dijemput untuk menjawabnya.

    balas
    0
  • PHP中文网

    PHP中文网2017-05-15 16:51:07

    Tandatangan dijana dengan meminta bahagian belakang seperti yang diperlukan, dan form_api_secret akan didedahkan apabila dikira pada bahagian hadapan

    balas
    0
  • 给我你的怀抱

    给我你的怀抱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 -muat naik-dengan-angularjs

    balas
    0
  • Batalbalas