Ionic Native Cameraプラグインを使用して画像を撮影し、base64で保存しています。Ionic 2 Angular 2 HTTP Post Base64画像をサーバーに送信すると、安全でないURLが送信される
次に、そのイメージをAmazon s3に送信して保存します。
私はなど、base64で画像、bucketname、キー名を含む私のAPIにPOST経由でパッケージを送信
HTTPは私のサーバーにデータを送信する前に私は私のコンソールに警告が言ってます:「WARNING:消毒、安全でありませんURL値のデータ:image/jpeg; base64 "
私はいくつかの調査を行い、受信者に有害な可能性のあるXSSが含まれている可能性があるため、AngularはURLをサニタイズすることを発見しました。
私のURLがきれいであることを知っているので、送信する前にDomSanitizerをインポートし、画像に「bypassSecurityTrustUrl」を使用しました。
以前と同じエラーメッセージが表示されます。
送信HTTP投稿でこれを無効にする方法はありますか?私はまだ入ってくるデータのためにそれを保持したいと思う。
はここで、
私は「PKGアップロードプロフィール画像を」ログコンソール
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { DomSanitizer } from '@angular/platform-browser';
@Injectable()
export class ImageService {
constructor(
private http: Http,
private sanitizer: DomSanitizer
) {}
uploadProfileImage(userInfo, image) {
return new Promise(resolve => {
let pkg = {
image: this.sanitizer.bypassSecurityTrustUrl(image),
name: userInfo.uid,
folder: 'profileImages',
email: userInfo.email
}
console.log('pkg upload profile image', JSON.stringify(pkg));
this.http.post('https://myurl/api/uploadpicture', pkg)
.subscribe(res => console.log('response from upload picture', JSON.stringify(res)));
})
}
}
は、画像値は、Amazon S3からこの
{"image":{"changingThisBreaksApplicationSecurity":"data:image/jpeg;base64,file:///var/mobile/Containers/Data/Application/xxxxxxxxxx/tmp/cdv_photo_007.jpg"},
私の応答が細かいように見える...画像サービスコードでありますファイルは正しいキー名で正しいバケットに投稿されますが、イメージは破損しており、〜80バイトしかありません。
私は本当にいくつかの助けに感謝して、これは角膜1.xを使用して私のイオン1アプリで正常に動作していた。
ありがとうございました