- 11
- Seia
- 조회 수 258
웹사이트를 제외하고는 Discord의 봇을 한편 개발 중입니다.
어느 것 하나 쉬운 것은 없는 것 같지만 봇의 경우에는 Node.JS로 출발을 하였고 이번 기회에 SQLite와 유튜브 스트리밍을 끝으로 마무리를 지으려고 합니다.
게다가 이제는 사이트 백엔드부분(이렇게 말하기는 개인적으로 좀 아니라고 생각합니다만... ㅋㅋㅋㅋㅋㅋ)도 거의 완료되었습니다.
이제는 완료해야 하지만 아직은 내려놓을 수가 없네요.
어느 블로그의 글을 보고 생각난게 있습니다. 바로 스포어에도 있는 Google 계정으로 로그인입니다.
OAuth를 사용하지 않고 순수 자바스크립트만으로 외부와 통신이 가능하게 할겁니다만 1가지 문제가 있습니다.
바로 외부와 데이터를 주고 받을 때(PHP 상이며, 당연히 POST를 사용할겁니다만 일부는 GET입니다) ID와 비밀번호를 GET으로 암호화하여 주고 받지 않고도 로그인을 했다는 것을 입증할 수 있을까요?
작성자
댓글 11
![profile image](/files/member_extra_info/profile_image/145/220/220145.jpg?t=1603012768)
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/764/094/94764.jpg?t=1566847506)
그 새로운 창을 JS로 넘긴다는 뜻인데..
게스트사이트 -(JS)> 호스트사이트(PHP) -(JS)> 게스트사이트
이런 식으로 값을 넘기는거죠.
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/145/220/220145.jpg?t=1603012768)
OAuth가 대부분 그렇게 구현되지 않나요?
애초에 PHP를 쓰는 순간부터 JS만 가지고 작동하는게 아니지 않을까 싶은데요.
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/764/094/94764.jpg?t=1566847506)
엥..? 혹시 디스코드에서 더 정확히 답변을 들을 수 있을까요?? 댓글로 줄줄이 달리는 것을 보기가 너무 힘들 것 같네요.
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/145/220/220145.jpg?t=1603012768)
디코 주세요
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/764/094/94764.jpg?t=1566847506)
아 DM으로 받을게요!
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![title : 황금 서버 (30일) title: 황금 서버 (30일)](https://studyforus.com/./files/iconshop/33055af84f02ddedb19db038cdae0d2f.gif)
![profile image](/files/member_extra_info/profile_image/569/001/1569.png?t=1527385219)
JWT(JSON Web Token)을 고려해보시는 것도 괜찮을 것 같네요.
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
그러면 Facebook 같은 Access 토큰들도 body 에 로그인 정보들을 가지고 있는건가요?
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![title : 황금 서버 (30일) title: 황금 서버 (30일)](https://studyforus.com/./files/iconshop/33055af84f02ddedb19db038cdae0d2f.gif)
![profile image](/files/member_extra_info/profile_image/569/001/1569.png?t=1527385219)
access token의 경우에는 단순히 키 값이고 로그인 정보들은 가지고 있지 않습니다.
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/640/096/96640.gif?t=1548527149)
이건 간단한 질문이 아닌데요? ㅋㅋ
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/764/094/94764.jpg?t=1566847506)
음..ㅋㅋㅋㅋㅋㅋ 그런가요?
다행히 네모님을 통해서 즉시 답을 얻을 수 있었고 당연히 복잡하게 설명을 들었습니다. ㅋㅋ
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
계정과 관련된 내용을 JS로 입증하기는 쉽지 않습니다.
구글 로그인 정보를 제공하는 페이지가 있는지는 모르겠습니다만.
JS만을 사용한다는 것은 클라이언트단의 정보를 전적으로 신뢰하겠단건데, 웹브라우저의 정보는 그렇게 믿을만한 정보는 아닐겁니다.
프록시를 통해 다른 사용자의 계정을 자신의 계정으로 속이는 간단한 방법도 JS만으로는 구분할 수 없을겁니다. 클라이언트단에서 아무리 방비를 해도 함수를 재선언하는 것만으로 모든 방어수단을 무효화시킬 수 있습니다.
OAuth라는 개념이 괜히 생긴게 아닙니다.