2012-03-04 5 views
0

안녕하세요 여러분, Yii 프레임 워크에서 처음입니다. 우선 사용자 등록/로그인 시스템을 만드는 것으로 시작하고 있습니다. 내 시스템이 정말로 안전하기를 바래지만, 쿠키를 사용하는 것이 가장 안전한 방법이 아니라는 것을 알게되었습니다. 그래서 흥미로운 제안이 있습니다. 저는 전문 PHP 프로그래머가 아니므로,이 제안은 버그를 포함 할 수 있습니다. 그러나 우리는 그것을 고칠 것이라고 생각합니다.Yii 쿠키 대신 데이터베이스 사용

내가 Yii 웹 사이트를 방문했을 때 알기 론, Yii는 먼저 쿠키를 가져오고 이미 로그인했는지 확인합니다. 쿠키 대신 데이터베이스를 사용할 수없는 이유는 무엇입니까?

ip 
remember_me 
latest_visit 

그래서, 왜 우리가 YII 쿠키 대신에 데이터베이스를 확인 할 수 없습니다 : 내 말은 우리가 데이터베이스에서이 필드를 가질 수있다? 내 말은 Yii가 guest ip == ip에서 db를 기억하고 remember_me == true이고 latest_visit가 7 일 이전이 아니 었는지 확인하는 것입니다. 따라서이 방법을 사용하는 쿠키 유효성 검사 대신에 더 좋습니다. 그리고 그 후 Yii가 쿠키 유효성 검사 후에 무엇을 하든지하도록하십시오.

우리가 달성 할 수있는 방법은 모든 데이터가 서버 측에 저장되고 클라이언트 측에서 아무 것도 저장되지 않으므로 쿠키가 도용되지 않도록하고 사용자 로그인 시스템을보다 안전하게 만드는 방법입니다.

이렇게하는 방법? 어떻게 생각해? Yii가 작업을 수행하는 방법?

답변

3

IP 주소로 사물을 확실하게 식별하지 못합니다. 놀이에 NAT (네트워크 주소 변환)가있을 수있다 그래서 DHCP가 만기가되는 언급하지 않기 위하여 다수 기계가 동일한 주소에서 오는 것처럼 보이고, 단 하나 기계 (아빠의 기계를 사용하는 아이)를 사용하는 다른 사람들의 가능성 etc로. . 따라서 제공된 정보를 사용하면 브라우저가 이전에 사이트를 방문한 적이 있다는 증거는 없습니다. 물론 어떤 사람들은 한 대의 컴퓨터에서 여러 개의 브라우저를 사용합니다 (예 : Firefox, Chrome, Safari). 쿠키는 다른 사용자가 사용할 수 없습니다.

당신이 제안하는 것은 비참 함입니다. 프로덕션 용도로 사용하지 마십시오.

+0

ok 감사합니다. 귀하의 조언을 주셔서 감사합니다. 잘못된 것 같습니다. 문제를 설명해 주셔서 감사합니다. – Irakli