Youpai Cloud Storage - Angular.JS를 통해 양식 제출 API를 사용할 수 있나요?
高洛峰
高洛峰 2017-05-15 16:49:07
0
4
662

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

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

이었습니다.

400: 승인 안 됨, 서명 누락

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

으아아아

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

어떻게 해야 하나요?

두 가지 질문도 있습니다.

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

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(4)
世界只因有你

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

해결책:

  • 헤더 제거
  • formDataAppender 제거
为情所困

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

  • 서명 서명에는 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이 답변을 위해 초대되었습니다. 🎜
Ty80

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

给我你的怀抱

http://stackoverflow.com/questions/24443246/angularjs-how-to-upload-multipart-form-data-and-a-file
http://uncorkedstudios.com/blog/multipartformdata-file-upload-with -angularjs

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿