2011-01-08 1 views
0


PHP가 evercookie을 다른 페이지에서 설정하는 방법.PHP가 영원히 맞도록 설정하는 방법

다른 말로하면, 나는 항상 쿠키를 검사하는 페이지가 있지만, 쿠키 값을 사용자에게 제공하는 페이지를 원하지 않습니다 (사용자가 페이지의 항상 쿠키 값을 보지 못하도록하고 싶습니다.) 소스), 쿠키 값이없는 경우 evercookie에 의해 호출되는 다른 페이지를 사용하여 수행 할 수 있습니다. 내가 어떻게 해 ?

답변

0

수업을 연구하고 편집했습니다. 쿠키가 값이없고 이미지 객체를 만들고 서버에서 가져 오면 서버는 문자열 [값] [one-way-encrypted-value]을 만들고 PNG 이미지로 인코딩합니다. 클래스 png 이미지를 열고 이미지를 스트링으로 다시 디코딩하고 값을 설정합니다. 이것이 어떤 봇이라도 고통 스러울 것이라고 생각합니다.

3

HTTP 응답의 일부로 정보를 다시 보내야하기 때문에 원하는 경우 사용자가 검색 할 수 없도록 브라우저에 데이터를 보낼 방법이 없습니다. HTTP는 일반 텍스트이므로 보내는 사람의 정보에 원격으로 관심이있는 사람이라면 누구나 쉽게 전체 응답을 얻을 수 있습니다.

(평범한) 브라우저가 반드시 일부 항목을 표시하지 않는다고해서 사용자가 액세스 할 수 없다는 것을 의미하지는 않습니다. 다른 것은 불가능하게 만들 것입니다.

4

당신이해야 할 일은 실제로 뭔가를 의미하는 데이터베이스 항목에 고유 한 값을 사용하는 것입니다. 그러나 사용자에게 무작위로 생성 된 문자열 이상은 아닙니다. 그래서 그것이 의미하는 바를 알기 원할 때 데이터베이스에 고유 항목이 있는지 확인한 다음 정보를 얻으십시오. 그러면 사용자가 보는 내용은 중요하지 않습니다.

예를 들어, 사용자가 로그인 상태를 유지하려면 쿠키를 임의의 문자열 (예 : 2947927e9suipohdoy20 [일반적으로 SHA-512에 의해 해시 된 임의의 숫자와 같이 더 긴 경우])로 설정 한 다음 그들의 계정에는 고유 한 값을 저장하는 RememberMe 필드가 있으며 문자열과 쾅에 대한 데이터베이스를 검색합니다! 나는 그들의 계정을 가지고있다!

+0

데이터베이스 항목은 하루에 1M 회의 SLOW가됩니다. 더 나은 해결책은 [VALUE] [ENCRYPTED_VALUE]이 (가) 쿠키를 서버에 저장된 키를 사용하여 단방향 암호화 알고리즘을 사용하여 전송 한 다음 값을 암호화하고 암호화 된 값으로이 키를 확인하여이 키를 확인하는 것입니다. 아무도 당신의 서버에 의해 생성되지 않은 쿠키를 보낼 것입니다. 하지만 여전히 사용자가 봇을 사용한다고 가정하면이 봇은 HTML 페이지에서 해당 쿠키를 가져 와서 어쨌든 다시 보냅니다. 당신은 질의와 자원을 낭비 할 것입니다 ... –

+2

모두가 하루에 1M 번 방문하기 때문에 그렇습니다. – ShaneK

+1

특히 쿠키에 관한 고급 질문을하는 사람 :-) –

관련 문제