개인 자료란 (JE)

  서버 커뮤니티

Profile Hexahedron 대표칭호 없음
Profile

질문하기 기타언어

HTML 회원가입 및 로그인, 보안 관련 질문입니다.

2020.08.31 조회 수 225 추천 수 0
이해도 기타 

안녕하세요. 저는 그냥 프로그래밍을 좋아하는 학생입니다. 저는 HTML과 CSS는 어느정도 할 줄 아는데 그래서 친구랑 같이 포럼을 만들어보기로 했습니다. 그러기 위해서는 회원가입 및 로그인 기능을 구현해야하고 보안도 강도 있게 구현해야합니다.

질문이 조금 많은데 이중에 몇개만 알려주셔도 되니까 제발 도와주세요!!

혹시 회원가입과 로그인 기능을 보안이 좋게 구현하는 방법은 없을까요?

그리고 회원가입 할 때 이메일 인증을 하는 기능도 만들어야 하고 네이버, 구글, 깃허브 계정으로 가입 하는 방법도 궁금합니다.

크롬에서는 개발자 도구에서 Sources 부분에 가면 코드를 볼 수 있던데 그것들도 안 보이게 하는 방법도 궁금합니다.

저는  PHP 공부하려고 XAMPP도 깔고 localhost 또는 127.0.01로 들어가보았는데도 연결이 안된다고 뜹니다. 보안 프로그램이랑 그런 것들도 다 빼고 실행했는데도 안 들어가집니다.

그리고 HTML 작업을 할 때 로그인 전 화면과 로그인 후 화면을 어떻게 다르게 할 수 있는지도 궁금합니다.

예를 들어서 로그인 전에는 글을 쓸 수 없고 로그인 버튼이 있어야 하고 로그인 후에는 글을 쓸 수 있고 로그인 버튼이 로그아웃 버튼으로 바뀌게 하는 것 같은 거이요...

조금 질문이 많았는데 제발 도와주세요!!


6개의 댓글

km_123456
2020.08.31

로그인부분은 세션 기반 인증 방식이나 토큰 기반 인증 방식을 공부해보시고

구글 깃헙 이메일 연동은 google OAuth, github OAuth 같은걸 공부해보시고

개발자도구를 막는 방법은 사실상 없습니다. 자바스크립트 난독화를 해서 코드 알아보기 어렵게 하는게 최선책입니다. 혹은 중요한 작업은 서버에서 처리하면되요

Hexahedron
2020.08.31
@km_123456

답변 감사합니다~ 혹시 도움될만한 자료 같은 것이 있을까요..?

 

냥냐챠
2020.08.31

1. 보안이 걱정되면 ssl 위에서 웹서버를 켜라냥. 인증서를 위조한 중간자 공격이 아닌 이상 타인에게 민감 정보를 유출할 일은 어지간하면 없어진다냥.

1-1. 대부분 타 사이트에서 자신들의 계정으로 로그인을 지원하는 플랫폼(네이버, 카카오, 디스코드, github) 들은 oauth 라는 개방된 표준을 이용해서 로그인 과정을 지원해주게 되어있다냥. 구글링 하면 많이 나오니깐 찾아보는것을 권장냥

2. 본래 자바스크립트는 서버 위에서 작동되는 스크립트가 아니다냥 html 에 의해서 자바 스크립트의 리소스 위치가 특정되서 브라우저가 다운로드 받게되고 브라우저 내부의 자바스크립트 엔진에 의해서 실행되는 구조다냥. 그쪽이 원하는건 devtools 에 그러한 스크립트가 안보이게끔 하는걸 원하는 것 같은데 이 같은 매커니즘 위에서는 그런 목표는 달성될 수 없다냥. 그러니 민감한 데이터를 처리하는 비즈니스 루틴은 서버측에서 처리하고 클라이언트에 전송되는 자바스크립트는 순전히 서버와의 통신, 프론트 엔드 구성에 중점을 둬야될꺼다냥.

2-1. 물론 devtools 그 자체를 안뜨게 하는 것이 목적이고 대부분의 툴 키디가 그게 안켜지면 어떻게 스크립트를 추출하는지 모르는 상황만을 가정하면 electron 같은 크롬 기반의 프로젝트를 이용해서 프로그램을 만드는걸 추천하지만냥, 그쪽은 웹사이트 포럼을 만든다고 하니 이 옵션은 사용할 수 가 없겠네냥

 

3. 웹서버를 열었는데 접속이 안된다는건 알겠다냥 근데 질문에 나와있는 정보들만으로는 왜 웹서버가 작동이 안되는지를 유추하기란 힘들다냥 후속 답변을 원하면 관련된 모든 정보를 쓰는것이 좋을꺼다냥

 

4. 자바스크립트를 이용해서 상태 변화를 주면 된다냥. isLoggedOn 같은 불린 형식의 변수에 로그인 상태를 담아서 로그인 또는 회원가입 이미지를 바꿔치기 하는 식으로 구현할 수 있다냥.

 

질문 자체가 속을 파고드는 질문이 아니였기 때문에 답변에도 한계가 있다는걸 알아줬으면 한다냥

열심히 코딩판치 해라냥 '^'b

Hexahedron
2020.08.31
@냥냐챠

감사하다냥 '^':D

NamuTree0345
2020.09.02

1. 보안은 SSL 하시면 됩니다

2. 서버 스크립트는 Source 들어가도 소스코드 안보입니다(서버스크립트는 PHP 최신버전(구버전 예외), Node.js같은것들입니다)

3. GitHub, Google 로그인같은건 OAuth라는것을 사용하기 때문에 검색해보시면 하실수 있으실겁니다!!!

+ (수정) OAuth 처음하시면 힘드실수도 있어요. 물론 저도 그랬고요. 갑자기 안될때가 있지만... 그런것들은 문서를 다시 천천히 보시면 될 듯합니다

4. 127.0.0.1이나 localhost로도 연결이 안되는건 포트를 8080같은걸로 해두었거나, 서버가 닫혀있는겁니다. (localhost로 바로 접속하게 하려면 80포트가 열려있어야 됩니다)

5. 로그인 전 화면과 로그인 후 화면을 다르게 하는 방법은, 서버스크립트에서 설정해주는겁니다.

 

아 그리고 서버스크립트를 사용하는 이유는 보안때문에 Source에서 소스코드를 보지 못하게 하는거에요

 

어.... 이건 설명이 안되있을수도 있으니 밤냥(?)님의 설명 읽어보시는걸 추천해요

MoPE
2020.09.04

127.0.0.1로 서버를 열었는데도 안들어가지는건 포트 번호를 치지 않아서 그럴 수 있습니다.

아파치를 쓰실테니까 따로 포트번호를 넣어주신게 아닌 이상 127.0.0.1:8080 또는 localhost:8080으로 접속해보시면 될 것 같습니다.

 

크롬, 오페라, 파이어폭스 등등 많은 웹브라우저가 소스보기를 지원하는데 이걸 막을 수 있는 방법은 없습니다. .

js는 난독화 작업을 해서 막을 수 있지만 html과 css같은 경우는 힘들다고 볼 수 있습니다.

 

다른 부분은 좋은 글들이 많아서 참고하시면 될 것 같습니다~

좋은 커뮤니티 포럼 만드세욥!

뉴스 및 창작물
/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2