내 질문에 대한 답변을 찾을 수 없습니다. 쿠키를 사용하여 등록 할 때 자동 로그인이 필요합니다. 어떤 종류의 정보를 쿠키에 저장해야합니까? 그것은 사용자 이름 + 해시 암호 또는 무엇입니까php user autologin
2
A
답변
4
처음에는 다른 사람들의 의견을 반영하기 위해 자동 로그인 기능이 아닙니다. '페이지에서 다른 곳으로 이동하면 나를 기억해'.
내가 과거에 어떻게 보았는지는 frostymarvelous가 설명한 구현과 유사합니다.
쿠키 1 : - - '사용자 이름'
쿠키 2
- 이름 : 나는 기본적으로 사용 3 개 쿠키 보았다
- 이름을 - '소금'
- 값 -이 특정 logi에 대해 생성 된 임의 소금 N
쿠키 3 :
- 이름 - 'authentication_hash'
- 값 - 오직 당신의 웹 사이트를 복제 할 수있는 데이터의 몇 가지 독특한 조각의 해시. 이 값을 쿠키에 복제 할 수 있으면 사용자가 다시 로그인 할 필요가 없는지 확인하십시오.
기본적으로, 쿠키 3은 가장 중요한 쿠키 내가 쉽게 복제되는 것을 방지하기 위해이에 몇 가지를 포함 할 것이다 : websitePassword '의
<?php function isAuthenticationCookieValid() { // $websitePassword would be a unique string stored in a file that is only // accessible by the server running your website. include("websitePassword.php"); // $hashOfUserPassword should be a hash of the user's password and should be // retrieved from the database in hashed form because that is how you should // store passwords. $hashOfUserPassword = retrieveUserPasswordFromDatabase($_COOKIE['username']); // $salt should just be read from cookie. $salt = $_COOKIE['salt']; $authenticationValue = sha1($websitePassword . $salt . $hashOfUserPassword); // Compare authentication value in cookie with calculated authentication value. return $authenticationValue == $_COOKIE['authentication_hash']; } ?>
내용.PHP는 그냥해야한다 :
나는 또한 당신의 웹 사이트의 보안을 위해 쿠키가 timelimit을 후에 만료 만들기 제안하고 그 특정 해시를 사용하려고, 그래서 만약 당신이 가능하게 당신의 해시에 시간 요소를 추가 할 수<?php $websitePassword = "secretWebsitePassword"; // Obviously use a better password ?>
특정 시간이 지나면 자동으로 로그인되지 않습니다.
1
해싱이 반전 될 수 있기 때문에 쿠키에 암호의 해시를 저장하지 않을 것입니다 (적어도 약한 암호의 경우).
데이터베이스에 저장할 수 있고 쿠키로 사용할 수있는 세션 토큰을 생성하십시오.
1
내가이 일을, 내가, 사용자 에이전트를 해싱 사용자 ID를 문자열의 끝을 압정. 사용자가 로그인하지 않은 경우 쿠키를 확인하고 문자열을 분할하고 사용자 에이전트가 동일한 지 확인한 다음 사용자 ID를 기록합니다. 이 btw는 너무 안전하지 않지만 기본적으로 그건 끝이야. 이것은 나를 기억하고있다.
xtgem과 같은 자동 로그인의 경우 사용자 이름과 고유 식별자가있는 URL이 제공됩니다. 북마크되어 있으며 사용자가이를 클릭하면 사용자가 체크인하고 로그에 기록합니다.
관련 문제
- 1. 팝업이없는 Active Directory Autologin
- 2. PHP User-Agent Graceful Degradation
- 3. User-agent Processing in php
- 4. Wordpress Autologin Plugin이 서버에서 작동하지 않습니다
- 5. Jetty에서 개발 중일 때의 Autologin
- 6. OSX app store and autologin application
- 7. "mydomain.com/user"를 "mydomain.com/name.php?id=user"로 리디렉션
- 8. Joomla Extra User Field
- 9. MySQL User AutoIncrement 권한 제한
- 10. /user/GET.php에 "GET/user/foo"를 /user/PUT.php에 "route"하도록 Apache를 설정하십시오.
- 11. Django ForeignKey (User), autcomcomplete
- 12. Wordpress & Vanity User URLs
- 13. NoMethodError User Authentication
- 14. API User Session Spring
- 15. android user agent
- 16. declerative_authorization on user problem
- 17. vsVim User Guide가 있습니까?
- 18. Asp.net semi-authenticated user?
- 19. AutoMapper : User Specific Mapping
- 20. django user auth + gwt
- 21. drupal user interested terms
- 22. Drupal resetting user Password
- 23. mysql_connect() : 사용자 'user'@ 'localhost'에 대한 액세스가 거부되었습니다.
- 24. Urlretrieve 및 User-Agent? - Python
- 25. Asp.net MVC User Control ViewData
- 26. $ _GET [ 'user'] PHP의 보안 취약점
- 27. Rails Helper for user 그림
- 28. 드루팔 (Drupal - Core User Module)
- 29. Facebook : User Like/페이지 팬되기
- 30. Selenium-Grid :`user-extensions.js` 사용법
해시 (md5, sha)에 대해 소금에 절인 암호를 사용하는 것이 더 좋지만 자동 로그인이 아니라 Remember Me입니다. :) –