찾다

 >  Q&A  >  본문

Youpai Cloud Storage - Angular.JS를 통해 양식 제출 API를 사용할 수 있나요?

기존 사업은 프런트엔드 Angular.JS 단일 페이지 애플리케이션을 완전히 사용하고 있으며 모든 요청은 ajax를 통해 전송됩니다.

이제 클라이언트 측에서 Youpaiyun에 직접 파일을 업로드하려고 합니다. 각도 파일 업로드를 시도했지만 제출된 결과는

이었습니다.

400: 승인 안 됨, 서명 누락

패킷 캡쳐 결과 정책 및 서명 양식 데이터가 전혀 제출되지 않은 것으로 나타났습니다.
제가 쓴 글은 다음과 같습니다.

으아아아

이 github 프로젝트의 이 문제와 이 문제를 참고했습니다

어떻게 해야 하나요?

두 가지 질문도 있습니다.

  1. md5로 서명을 직접 암호화해서 쓸 수 있는데, 이 md5를 클라이언트에서 직접 쓰면 보안상 문제가 없나요?
  2. js에서 base64 인코딩으로 정책을 생성할 수 있나요? 공식 데모는 PHP로 생성된 것 같거든요. 프런트엔드에서 생성할 수 있는 경우 이 프로세스를 프런트엔드에서 작성하면 보안 문제가 발생합니까?
高洛峰高洛峰2777일 전673

모든 응답(4)나는 대답할 것이다

  • 世界只因有你

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

    이 문제를 참조했습니다
    서명 보안 문제만 해결되면 파일 업로드가 가능합니다. 감사합니다.

    해결책:

    • 헤더 제거
    • formDataAppender 제거

    회신하다
    0
  • 为情所困

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

    안녕하세요 다음 두 가지 질문에 먼저 답변해 드리겠습니다.

    • 서명 서명에는 form_api_secret가 포함되어 있으므로 프런트 엔드에 직접 작성하면 보안 문제가 발생할 수 있습니다. 다른 사람이 form_api_secret을 얻으면 직접 작성할 수 있습니다. 양식은 파일을 공간에 제출하고 트래픽을 사용합니다. form_api_secret的,所以若在前端直接写时,确实会存在安全问题:其他人拿到你的form_api_secret,就可以自己编写表单把文件提交到你的空间,并使用你的流量了。

    • policy 能使用 base64 在前端生成。虽然 policy 是 encode 参数内容,不存在安全问题,但因为 $signature = md5($policy.'&'.$form_api_secret);

    정책은 base64를 사용하여 프런트 엔드에서 생성될 수 있습니다. 정책은 인코딩 매개변수의 내용이고 보안 문제는 없지만 $signature = md5($policy.'&'.$form_api_secret);이므로 여전히 보안 문제가 언급됩니다. 위에.

    🎜 🎜 코드 질문과 관련하여 @PenaFong이 답변을 위해 초대되었습니다. 🎜

    회신하다
    0
  • PHP中文网

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

    필요에 따라 백엔드에 요청하여 서명이 생성되며, 프론트엔드에서 계산할 때 form_api_secret가 노출됩니다

    회신하다
    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-upload-with -angularjs

    회신하다
    0
  • 취소회신하다