2011-11-05 6 views
-1

어제 밤에 질문을 올렸지 만, 불행히도 나는 자신을 발견 한 상황에 대해 충분히 구체적이지 않았습니다. 나는 '코멘트'를 작성해야하는 숙제를 받았습니다. 블로그 섹션 그러나 사용자가 댓글을 남기려면 captcha를 입력해야합니다. 우리의 임무는 쿠키를 사용하여 로그인 시도를 추적하는 것입니다. 나는 내 원래 qestion에 제대로 설명하지 못한 무엇PHP 쿠키 및 타이밍 문제

입니다 : 우리는 쿠키를 사용합니다

. 이는 특히 쿠키 구현을 목표로 한 연습입니다. 그것은 모범 사례가 아니며 취약합니다. 강사는 왜 우리가 '현실 세계'에서이 일을해서는 안되는지 설명했지만, 그는 우리가 쿠키 사용을 이해하고 증명하기를 원합니다.

어제 밤에 질문을 올렸지 만, 불행히도 나는 자신을 발견 한 상황에 대해 충분히 구체적이지 않았습니다. 블로그에 '의견'섹션을 만들 숙제가 주어졌습니다. . 그러나 사용자가 댓글을 남기려면 captcha를 입력해야합니다. 우리의 임무는 쿠키를 사용하여 로그인 시도를 추적하는 것입니다. 나는 내 원래 qestion에 제대로 설명하지 못한 무엇

입니다 : 우리는 쿠키를 사용합니다

. 이는 특히 쿠키 구현을 목표로 한 연습입니다. 그것은 모범 사례가 아니며 취약합니다. 강사는 왜 우리가 '현실 세계'에서이 일을해서는 안되는지 설명했지만, 그는 우리가 쿠키 사용을 이해하고 증명하기를 원합니다.

사용자가 로그인하기를 원하는만큼의 기회를 허용해야합니다. 그러나 30 초 내에 5 번 시도하면 3 분 동안 잠겨 있습니다.

대부분의 사람들은 세션을 사용해야한다고 말했고, 이는 의미가 있습니다. 그러나 허용되지 않습니다.

상위 수준에서 수행해야 할 작업은 "개수"대신 타임 스탬프를 저장하는 것입니다. 그런 다음 각 요청마다 30 초보다 오래된 타임 스탬프를 버리고 나머지는 계산합니다.

사용자가 로그인하기를 원하는만큼의 기회를 허용해야합니다. 그러나 30 초 내에 5 번 시도하면 3 분 동안 잠겨 있습니다.

대부분의 사람들은 세션을 사용해야한다고 말했고, 이는 의미가 있습니다. 그러나 허용되지 않습니다. 한 사용자는 내가해야 할 일은 '카운트'대신 타임 스탬프를 저장 한 다음 30 초보다 오래된 타임 스탬프를 버리고 나머지는 계산하는 것입니다. 이것은 의미가 있지만 실제로 이것을 어떻게 달성합니까?

이것은 숙제 문제입니다. 코드를 기대하지는 않습니다. 나는 단지 전체 '쿠키 일'에 대한 명확성을 찾고있다. 배열에 타임 스탬프를 저장해야합니까? 그렇다면 어떻게해야합니까? 시간이 30 초를 초과하면 배열에서 어떻게 삭제합니까?

나는 일반적으로 쿠키에 대한 이해가 조금 부족하다고 생각합니다. 모든 설명은 크게 감사하겠습니다. 나는 누군가가 소중한 시간을 낭비하지 않고 간결하게되기를 바랍니다. 고맙습니다.

답변

1

제안 사항 쿠키를 사용해야하는 경우 만료 시간이 30 초인 실패한 시도에 대한 플래그로 개별 쿠키를 설정하고 실패한 4 개의 시도 플래그가 모두 있고 실패하면 다시 플래그를 설정하는 것이 좋습니다 쿠키는 3 분 후에 만료되고 해당 플래그가 설정되어있는 동안 시도를 허용하지 않습니다.

+0

새내기에 대한 후속 조치 ..... 다음 번에 새 쿠키를 할당해야합니까?setcookie ("firstcookie")에서와 같이 설정되어 있는지 확인하고, 설정되어 있는지 확인하려면 setcookie ("secondcookie") 등을 4 개가 설정 될 때까지? – mrwienerdog

+0

그럴 가능성이 가장 간단한 방법은 각 시도마다 고유의 시간 초과가 있습니다. 논리는 다음과 같이됩니다. 전체 잠금 쿠키가 설정되어 있지 않고 시도가 실패하면 요청에서 플래그 1을 확인하고, 설정되어 있지 않으면 플래그 1을 확인하고 플래그 2로 이동 한 후 확인/설정을 반복하십시오. 에. –

+0

나는 upvote에 충분한 포인트가 아직 없지만 고마워. 총체적인 의미를가집니다. 내 강사가 3 개의 쿠키 만 사용한다고 말했기 때문에 끊었 어. 나는 이런 식으로 생각조차하지 못했다. 위대한 작품! –