0
https://developers.facebook.com/docs/authentication/signed_request/의 설명서는 인코딩 된 데이터의 예를 보여줍니다. 잘못된 것 같습니다. base64_decode
에Facebook의 signed_request 문서 예제에서 유효하지 않은 base64가
{"algorithm":"HMAC-SHA256","0":"payload"}
eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0=
인수는 =
패딩 문자를 누락되었습니다
<?php
echo base64_decode("eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0");
echo "\n";
echo base64_encode('{"algorithm":"HMAC-SHA256","0":"payload"}');
echo "\n";
?>
출력을 제공합니다. 동일한 데이터에
base64_encode
을 사용하면 PHP로 생성되지 않았거나 사용 된 PHP 버전이 도청 당했거나 무엇을 모르겠습니다. 동일한 문서 페이지에는 누락 된
=
문자열에 서명하는 서명이 제공됩니다.
질문 : Facebook 문서에서 패딩을 생략하거나 프로덕션 코드에서 이러한 종류의 누락이 예상 되나요?
다른 언어도 PHP처럼 "정상적으로"실패하지 않으며 빠진 패딩 기호가있는 base64 데이터를 실제로는 디코딩하지 않습니다. 따라서 다소 중요합니다.