0

캐시 정책이 기본 인증을 무시하고 .returnCacheDataElseLoad/.returnCacheDataDontLoadNSURLRequest이 궁금합니다. 그래서 다음과 같은 시나리오가 제대로 작동합니다(iOS 버그?) 잘못된 자격 증명으로 캐시 된 인증이 통과되었습니다.

  • 설정 URL 캐시 정책이
  • 만들기를 오프라인
  • 가 성공 응답을
  • 스위치를 좋은 자격 증명 신선한 요청을 수신하기 전에 서버
  • 에 요청에 로컬 캐시를 사용하는 이전 URL이 있지만 인증 자격 증명이 올바르지 않은 요청
  • 잘못된 자격 증명으로 두 번째 요청 성공

전체적으로이 버그는 iOS 시스템 캐시를 통해 앱의 오프라인 모드가 구현 된 경우 누구나 로그인 할 수 있습니다.

아무도이 문제에 익숙하지 않습니까? 그것은 적어도 iOS 10에서 발생합니다. 나는 그것을 부드럽게 수정하는 방법을 찾고 있습니다.

답변

0

이것은 예상되는 동작입니다. NSURLCache 캐시는 URL 자체만을 기반으로하며 요청의 다른 측면을 기반으로하지 않습니다. IIRC는 헤더, POST 본문 등을 고려하지 않습니다. (나는 무시할 수없는 부분을 잊어 버릴 수도 있지만 어느 쪽이라도 자격 증명이 무엇인지 잊어 버릴 수 있습니다.)

보기가 다른 여러 사용자 계정을 서버 측 데이터로 지원하려면 응용 프로그램을 사용해야합니다. 각 사용자마다 별도의 캐시가 있어야하며 클라이언트 측에서 인증 자격 증명을 어떻게 든 확인해야합니다. (이것은 클라이언트와 서버가 현재 암호의 개념면에서 비동기가 될 수 있음을 의미하므로 실제로는 아마도 실수 일뿐입니다.)

관련 문제