내가 작업하고있는 일부 코드로이 작은 문제를 해결할 수 있기를 바랍니다. 염두에 두십시오, 이것은 다만 취미 위치를 위해이다, 나는 안전 구멍이다는 것을 알고있다. 사용자가 "remember me"상자를 체크하면 로그인 스크립트와 등록 페이지에서 호출되는 set_remember_cookies라는 함수를 작성했습니다.PHP setcookie 함수가 쿠키를 저장하지 않습니까?
각 보안 페이지에 함수는 다음을 수행하십시오 기억 쿠키
- 확인
- 사용자 테이블에서 해당 User_ID의 암호를 가져옵니다.
- remember_cookies 테이블에서 소금을 가져옵니다.
- 해시 암호 + 소금 및 해시 된 p와 일치시킵니다. 쿠키의 assword
다시 말해 쿠키에 해시 된 암호도 저장하는 것은 안전하지 않지만 지금은 걱정하지 않습니다.
내 문제는 아래에 포함 된 set_remember_cookies 함수가 실제로 쿠키를 설정하지 않는다는 것입니다. 보안 페이지에서 첫 번째 단계 (쿠키가 있는지 확인)가 실패합니다. 나는 또한 브라우저에서 쿠키를 확인했는데 저장되지 않았다.
이 기능이 쿠키를 설정하지 않는 이유는 누구에게 설명 할 수 있습니까? 나는 어떤 오류도 찾을 수 없지만 누군가가 할 수 있기를 바랍니다! 감사!
<?php
function set_remember_cookies($uid, $identifier, $password) {
mysql_query("DELETE FROM remember_cookies WHERE User_ID = '$uid'"); //Delete old cookie records
$salt = sha1(uniqid(time() . $_SERVER['HTTP_REFERER']));
$username_hash = hash("sha256", $identifier . $salt); //Hash the username
if (mysql_query("INSERT INTO remember_cookies (User_ID, Username_Hash, Salt) VALUES ('$uid', '$username_hash', '$salt')")) {
setcookie("Username", $username_hash, 60*60*24*365);
setcookie("Password", hash("sha512", $password . $salt), 60*60*24*365);
}
}
?>
음 ... 나는 단순한 것을 간과 한 느낌이 들었습니다. 나는 전에 쿠키를 사용했고, 오늘 3 번 정도 그 문서를 다시 읽어야합니다. 오 잘, 때로는 뭔가 추측 할 누군가가 필요해. 롤! 고맙습니다! – HockeyRef45