기존 사업은 프런트엔드 Angular.JS 단일 페이지 애플리케이션을 완전히 사용하고 있으며 모든 요청은 ajax를 통해 전송됩니다.
이제 클라이언트 측에서 Youpaiyun에 직접 파일을 업로드하려고 합니다. 각도 파일 업로드를 시도했지만 제출된 결과는
이었습니다.400: 승인 안 됨, 서명 누락
패킷 캡쳐 결과 정책 및 서명 양식 데이터가 전혀 제출되지 않은 것으로 나타났습니다.
제가 쓴 글은 다음과 같습니다.
이 github 프로젝트의 이 문제와 이 문제를 참고했습니다
어떻게 해야 하나요?
두 가지 질문도 있습니다.
이 문제를 참조했습니다
서명 보안 문제만 해결되면 파일 업로드가 가능합니다. 감사합니다.
해결책:
안녕하세요 다음 두 가지 질문에 먼저 답변해 드리겠습니다.
서명 서명에는
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이 답변을 위해 초대되었습니다. 🎜필요에 따라 백엔드에 요청하여 서명이 생성되며, 프론트엔드에서 계산할 때 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