쿠키 대 세션
몇 달 전에 PHP를 사용하기 시작했습니다. 내 웹 사이트에 대한 로그인 시스템을 만들기 위해 쿠키와 세션 및 차이점에 대해 읽었습니다 (쿠키는 사용자의 브라우저에 저장되고 서버의 세션에 저장됩니다). 그 당시 나는 쿠키를 선호했고 쿠키를 좋아하지 않는 사람은 누구입니까?! "라고 말했습니다."누가 신경 쓰나요? 서버에 쿠키를 저장하는 데 아무런 문제가 없습니다 "라고 쿠키를 사용했습니다. 내 학사 졸업 프로젝트. 그러나 내 응용 프로그램의 큰 부분을 수행 한 후 사용자의 ID를 저장하는 특별한 경우 세션이 더 적합하다고 들었습니다. 그래서 배심원이 왜 세션 대신 쿠키를 사용했는지 물어 보면 어떻게 될까요? 나는 그 이유가 있습니다 (사용자에 대한 내부 정보를 저장할 필요가 없습니다).? 아니면 그 이상입니까?
사용자 ID를 유지하기 위해 쿠키를 사용할 때의 장점 / 단점에 대해 말씀해 주시겠습니까?
StackOverflow에 감사합니다!
이 개념은 웹 방문자를 위해 페이지로드 전체에 지속적 데이터를 저장하는 것입니다. 쿠키는이를 클라이언트에 직접 저장합니다. 세션은 쿠키를 일종의 키로 사용하여 서버 측에 저장된 데이터와 연결합니다.
실제 값은 클라이언트에서 숨겨지고 데이터가 만료되어 유효하지 않은시기를 제어하므로 세션을 사용하는 것이 좋습니다. 쿠키를 기반으로 한 경우 사용자 (또는 해커)는 쿠키 데이터를 조작 한 다음 사이트에 대한 요청을 재생할 수 있습니다.
편집 : 단순성 이외의 쿠키를 사용하면 이점이 없다고 생각합니다. 이런 식으로보세요 ... 사용자가 자신의 ID #를 알아야 할 이유가 있습니까? 일반적으로 아니요라고 말하면 사용자는이 정보가 필요하지 않습니다. 정보 제공은 알아야 할 필요성에 따라 제한되어야합니다. 사용자가 쿠키를 변경하여 다른 ID를 가지면 어떻게 응답합니까? 보안 위험이 있습니다.
세션이 모두 분노하기 전에 기본적으로 내 구현이있었습니다. 클라이언트에 고유 한 쿠키 값을 저장하고 해당 쿠키 값과 함께 데이터베이스에 영구 데이터를 저장했습니다. 그런 다음 페이지 요청에서 해당 값을 일치시키고 클라이언트가 무엇을 제어하지 못하게하는 영구 데이터를 보유했습니다.
이 두 가지를 구별하기위한 기본 아이디어.
세션:
- IDU는 서버에 저장됩니다 (예 : 서버 측)
- 더 안전합니다 (1 때문에)
- 사용자가 브라우저를 닫으면 만료를 설정할 수 없습니다. 세션 변수가 만료됩니다. (현재는 PHP에서 기본값으로 24 분 동안 저장됩니다)
쿠키:
- IDU는 웹 브라우저에 저장됩니다 (예 : 클라이언트 측)
- 해커가 정보에 접근하여 정보를 얻을 수 있기 때문에 안전하지는 않습니다 (1 때문에).
- 만료 설정 가능 (자세한 내용은 setcookies () 참조 )
계산, 측정, 쿼리 등의 변수와 같은 단기 정보 / 값을 저장해야하는 경우 세션이 선호됩니다.
쿠키는 사용자 계정과 같은 장기 정보 / 값을 저장해야 할 때 선호됩니다 (2 일 동안 컴퓨터를 종료하더라도 계정은 여전히 로그인됩니다). 쿠키가 대부분의 상황에서 채택되지 않았기 때문에 쿠키에 대한 많은 예를 생각할 수 없습니다.
SESSIONS ENDS WHEN USER CLOSES THEIR BROWSER,
COOKIES END DEPENDING ON THE LIFETIME YOU SET FOR IT. SO THEY CAN LAST FOR YEARS
이것이 당신이 선택한 가장 큰 차이점입니다.
ID를 오랫동안 기억하려면 쿠키를 사용해야합니다. 그렇지 않으면 웹 사이트 가이 방문에 대해서만 사용자를 인식하도록하려면 세션이 진행됩니다.
세션은 PHP 서버가 생성 할 파일에 저장됩니다. 어떤 파일이 어떤 사용자를위한 것인지 기억하기 위해, php는이 세션 파일 ID를 보유하는 사용자 브라우저에 쿠키를 설정하여 다음 방문에서 PHP가이 파일을 읽고 세션을 다시로드합니다.
이제 php는 기본적으로 매 간격마다 세션을 지우고 세션 명명 규칙에 따라 자동 만료됩니다. 또한 브라우저는 브라우저가 닫히거나 히스토리가 지워지면 세션 ID를 보유하는 쿠키를 유지하지 않습니다.
요즘 브라우저는 LocalStorage, SessionStorage 및 Javascript 코드가 데이터를 컴퓨터에 저장하여 사용자를 기억하는 데 사용할 수있는 다른 webdb 엔진과 같은 다른 종류의 스토리지 엔진도 지원한다는 점에 유의해야합니다. 예를 들어 Facebook에서 Javascript 콘솔을 열고 "localStorage"를 입력하면 Facebook없이 쿠키없이 사용자를 기억하기 위해 사용하는 모든 변수가 표시됩니다.
로그인 한 사용자를 인식하기 위해 #ID를 쿠키로 저장하면 실제로 관련이없는 사용자에게 데이터가 표시됩니다. 또한 제 3자가 브라우저에서 임의의 ID를 쿠키 데이터로 설정하려고하면 실제로는 아닌 동안 사용자임을 서버에 알릴 수 있습니다. 보안이 부족합니다.
쿠키를 사용했으며 이미 말했듯이 대부분의 프로젝트를 완료했습니다. 쿠키 이외에도 오랫동안 머무를 수있는 특권이 있지만 세션은 더 빨리 종료됩니다. 따라서이 경우 세션이 적합하지 않습니다. 실제로 많은 유명하고 인기있는 웹 사이트 및 서비스는 쿠키를 사용하므로 오랫동안 로그인 상태를 유지할 수 있습니다. 그러나 방법을 사용하여보다 안전한 로그인 프로세스를 만들 수 있습니까?
아이디어는 다음과 같습니다. 쿠키 사용 방법을 도울 수 있습니다. 로그인 한 사용자를 식별하기 위해 ID 대신 임의의 키를 사용하는 경우 먼저 기본 데이터를 임의의 사용자에게 유출하지 않으며, 두 번째는 임의의 사용자를 고려하는 경우 키가 크면 누구나 키를 추측하거나 임의의 키를 만드는 것이 더 어렵습니다. 예를 들어, 사용자 브라우저에서 "KUYTYRFU7987gJHFJ543JHBJHCF5645UYTUYJH54657jguthfn"과 같은 40 개의 길이 키를 저장할 수 있으며 누구나 정확한 키를 작성하고 다른 사람인 것처럼 가장 할 가능성이 줄어 듭니다.
실제로 세션과 쿠키가 항상 별개의 것은 아닙니다. 세션이 쿠키를 사용하는 것은 아니지만 항상 그런 것은 아닙니다.
이 다른 질문들에는 귀하의 질문에 대한 좋은 답변이 있습니다. 귀하의 질문은 구체적으로 사용자의 IDU (또는 ID)를 저장하는 것에 관한 것이므로 다른 질문과 중복되는 것은 아니지만 답변이 도움이 될 것입니다.
나는 개인적으로 쿠키와 세션을 모두 사용합니다.
쿠키는 사용자가 "기억하기" 체크 상자를 클릭 할 때만 사용됩니다 . 또한 쿠키는 암호화 되며 데이터 는 서버 에서만 해독 됩니다. 누군가 쿠키를 편집하려고하면 해독기가 쿠키를 감지하고 요청을 거부 할 수 있습니다.
I have seen so many sites where login info are stored in cookies, anyone can just simply change the user's id and username in cookies to access anyone account.
Thanks,
Session and Cookie are not a same.
A session is used to store the information from the web pages. Normally web pages don’t have any memories to store these information. But using we can save the necessary information.
But Cookie is used to identifying the users. Using cookie we can store the data’s. It is a small part of data which will store in user web browser. So whenever user browse next time browser send back the cookie data information to server for getting the previous activities.
Credits : Session and Cookie
Sessions allow you to store away individual pieces of information just like with cookies, but the data gets stored on the server instead of the client.
As others said, Sessions are clever and has more advantage of hiding the information from the client.
But Cookie still has at least one advantage, you can access your Cookies from Javascript(For example ngCookies). With PHP session you can't access it anywhere outside PHP script.
I will select Session, first of all session is more secure then cookies, cookies is client site data and session is server site data. Cookies is used to identify a user, because it is small pieces of code that is embedded my server with user computer browser. On the other hand Session help you to secure you identity because web server don’t know who you are because HTTP address changes the state 192.168.0.1 to 765487cf34ert8ded…..or something else numbers with the help of GET and POST methods. Session stores data of user in unique ID session that even user ID can’t match with each other. Session stores single user information in all pages of one application. Cookies expire is set with the help of setcookies() whereas session expire is not set it is expire when user turn off browsers.
A session is a group of information on the server that is associated with the cookie information. If you're using PHP you can check the session. save _ path location and actually "see sessions". A cookie is a snippet of data sent to and returned from clients. Cookies are often used to facilitate sessions since it tells the server which client handled which session. There are other ways to do this (query string magic etc) but cookies are likely most common for this.
참고URL : https://stackoverflow.com/questions/6253633/cookies-vs-sessions
'Programing' 카테고리의 다른 글
파이썬에서 폴더를 재귀 적으로 삭제 (0) | 2020.05.26 |
---|---|
음수로 모듈로 연산 (0) | 2020.05.26 |
IIS Express가 아닌 IIS7에서 WebApi의 { "message": "오류가 발생했습니다"} (0) | 2020.05.26 |
rand ()를 사용할 때이 특정 색상 패턴을 얻는 이유는 무엇입니까? (0) | 2020.05.25 |
Google Compute Engine에서 9090과 같은 특정 포트를 여는 방법 (0) | 2020.05.25 |