yoonjaepark / flutter_naver_login

A Flutter plugin for Naver Sign In.
BSD 2-Clause "Simplified" License
49 stars 82 forks source link

fix(보안 취약성): ios 에서 https 가 아닌, http 를 사용하는 이유? #47

Closed jjangga0214 closed 2 years ago

jjangga0214 commented 2 years ago

Info.plist:

        <!-- http allows configurations -->
        <key>NSAppTransportSecurity</key>
        <dict>
           <key>NSAllowsArbitraryLoads</key>
           <true/>
           <key>NSExceptionDomains</key>
           <dict>
              <key>naver.com</key>
              <dict>
                 <key>NSExceptionAllowsInsecureHTTPLoads</key>
                 <true/>
                 <key>NSExceptionRequiresForwardSecrecy</key>
                 <false/>
                 <key>NSIncludesSubdomains</key>
                 <true/>
              </dict>
              <key>naver.net</key>
              <dict>
                 <key>NSExceptionAllowsInsecureHTTPLoads</key>
                 <true/>
                 <key>NSExceptionRequiresForwardSecrecy</key>
                 <false/>
                 <key>NSIncludesSubdomains</key>
                 <true/>
              </dict>
           </dict>
        </dict>

현재 README 에서 naver.com 과 naver.net 에 대해 https 대신 http 를 사용하는 것을 허용하도록 가이드하고 있습니다.

http 를 사용시 MITM 공격에 취약하여 보안 위협이 됩니다. 따라서 로그인에는 절대 http 를 쓰지 않는 것이 사실상 표준 practice 가 되었습니다.

어째서 사용자의 기밀정보를 다루는데 http 를 허용해야 할까요? 네이버 공식 iOS 라이브러리에도 이런 설정을 하라는 가이드는 없었습니다.

yoonjaepark commented 2 years ago

https://github.com/naver/naveridlogin-sdk-ios/blob/master/NaverIDLoginSample/Info.plist

네이버 공식 example 을 참고해서 작성해서 동일한 설정으로 되있는데 확인해서 지워도 되는 설정이면 삭제하겠습니다.