2016-09-18 1 views
3

로그인 시스템을 사용자 정의하고 보안상의 이유로 모든 인증 요청을 기록하도록 요청 받았습니다. 내가 할 계획사용자 에이전트 문자열을 저장하려면 데이터베이스 필드를 얼마나 오래해야합니까?

것은 들어오는 사용자 에이전트 문자열을 기록하며 나의 VARCHAR 필드는 MySQL의에 있어야 어떤 길이 Request from: (Chrome/Windows) 또는 Request from: (Firefox/Mac)

등의 디스플레이로 요청이있을 경우이를 번역입니까?

앞으로 클라이언트의 브라우저/OS 정보를 정확하게 결정하려면 전체 사용자 에이전트 문자열이 필요합니까? 아니면 내가 그것을에서 부분 문자열을 추출하고 나머지는 "쓸모없는 정보"를 버릴 수 있도록 useragents에 대한 몇 가지 사양입니다.

+1

관련 항목 : http://stackoverflow.com/questions/15140416/user-agent-strings-what-should-i-capture?rq=1 http://stackoverflow.com/questions/23742935/user-agent- header-abbreviation-for-mysql-storing? rq = 1 – Thilo

+0

varchar 대신 TEXT 사용 –

답변

1

짧은 대답 : 임의로 큰 경우에도 일부 사용자 에이전트는 이 여전히이됩니다.

긴 답변 : User-Agent에 색인을 넣으 려하지 않는 한 (기록/표시 용도로만 사용하는 이유는 모르겠지만) 텍스트 필드 대신 VarChar를 사용할 이유가 없습니다 그것은 충분히 길다.

또는 "Chrome/Windows"또는 "Safari/iPhone"과 같이 더 유용한 VarChar 값을 사용할 수있는 문자열로 변환하는 User-Agent 구문 분석 라이브러리를 찾아 볼 수도 있습니다.

사용자 에이전트 문자열은 절대 지정되지 않습니다. 그것들은 완전히 임의적인데, 많은 사람들이 모든 사용자 에이전트에 대해 항상 추측 할 수있는 몇 가지 일반적인 패턴을 고수하지만. 요약

, 당신의 3 옵션은 다음과 같습니다

  • 는 의미
  • 임의 VARCHAR 길이를 선택하고 일부는
  • 가 텍스트 필드를 사용하여 차단됩니다 수락 라이브러리를 구문 분석 할 수
+0

MySQL에서 varchar의 최대 길이는 255가 아니라 65535 바이트입니다. http://dev.mysql.com/doc/refman/5.7/en/char.html –

+0

아, 변경된 것 같습니다. 5.0 이후 나는 거짓말을하고 있습니다. P 업데이트 된 문구가 있지만 일반적인 메시지는 같습니다. –

관련 문제