문제

내 질문은 무엇보다 확인에 관한 것입니다.HTML 문서에서 고유한 것이 무엇인지 확인하는 데 무엇을 사용할 수 있습니까?(문서는 어느 정도 동적일 수 있습니다.)

확인 중인 페이지 종류의 "지문"을 저장할 수 있다는 점을 고려하여 페이지가 99%의 정확도로 올바른 페이지임을 인식하기 위해 사용하거나 생성할 수 있는 것은 무엇입니까?


명확하게 하기 위해 이는 암호화/https 등에 추가된 것입니다.이 페이지는 특정 사용자에 따라 동적 콘텐츠로 변경될 수 있으며 지문도 마찬가지이지만 동적 콘텐츠의 특성상 단일 지문이 사용자의 100%와 100% 일치할 수는 없습니다.따라서 해시는 최소한 단순한 형태로는 작동하지 않습니다.

도움이 되었습니까?

해결책

HTML 페이지의 고유 한 지문은 쉽게 계산할 수 있습니다. 다음에서 해시를 구축하십시오.

  • 프로토콜 : HTTP 또는 HTTPS
  • URL : 도메인 + URI
  • query_string
  • 정확한 페이지의 내용은 바이트까지입니다

선택적으로 일부 헤더 :

  • Server
  • Content-Type 이건 중요하다
  • Content-encoding 이것도 아마도
  • 더 많은 아이디어? 자유롭게 편집하십시오.

이것은 페이지에 데이터를 게시하지 않는다고 가정합니다.

다른 팁

호스트의 IP를 확인하지 않으면 1% 확신 할 수 없습니다. 다음은 암호화입니다. (이것 없이는 ARP Poisoing의 희생자가 될 수 있습니다 (LAN 네트워크에서만).

HTTPS의 핵심은 항상 동일해야합니다.

변경되면 누군가가 속임수를 쓰거나 키가 업데이트된다는 것을 의미합니다 (키에는 만료 날짜가 있습니다.)

페이지의 지문은 호스트 이름, 포트 및 경로입니다. 그것이 웹 전체에서 독특하다는 유일한 것입니다. 캐시 헤더 (마지막으로 변형)를 포함하여 변경되었는지 확인할 수도 있다고 생각합니다.

또한 HTML을 해시하면 마지막으로 수정 된 헤더가 변경 되어도 변경되었는지 확인할 수 있습니다.

1 분 동안 HTML 페이지의 '지문'을 저장하려고한다고 가정하면 나중에 인식 할 수 있습니다. 바로 그거죠 일치, HTML 페이지의 간단한 해시 다이제스트 만 사용하십시오.

질문을 더 명확하게하지 않으면 HTML이거나 어떤 브라우저인지 문제가되는 이유를 알 수 없습니다.

그러나 페이지가 같은 위치에 있는지 여부는 알려주지 않습니다. 이를 위해서는 호스트/IP 및 경로와 같은 추가 세부 정보를 저장해야합니다.

두 페이지의 텍스트 버전을 얻을 수 있다면 서로 비교할 수 있습니다.페이지의 차이가 허용되는 최대 범위를 결정할 수 있습니다.

Unix 유틸리티(diff라고 함)가 있습니다.이 도구의 win32 버전도 인터넷에 떠 있습니다.Wikipedia에는 ​​diff에 대한 기사가 있습니다. http://en.wikipedia.org/wiki/Diff.

위키 기사에는 무료 파일 비교 도구가 나열되어 있으며 "참조" 섹션에는 파일 비교 도구 및 델타 인코딩을 논의하는 다른 기사에 대한 링크가 있습니다.

"Levenshtein 거리 측정법"도 흥미로운 접근 방식일 수 있습니다.

CodeProject에는 괜찮은 C# 차이 엔진이 있습니다.포인트가 낮아서 다른 링크를 게시할 수 없지만 기사 제목은 다음과 같습니다."C#의 일반적이고 재사용 가능한 Diff 알고리즘".

정확한 호스트 이름, 포트 및 경로가 있더라도 웹 페이지를 제공하는 앱 서버가 있거나 웹 서버가 광고 컨텐츠를 삽입하는 경우 콘텐츠가 여전히 다를 수 있습니다.

동적 인 HTML의 일부를 동적 인 HTML의 일부 (ADS 또는 TIMESTAMPS와 같은 업데이트)를 안정적으로 식별 할 수 있다면 먼저 데이터를 정규화합니다. 나는 모든 공간 문자 (공간, 탭, 신성경)를 제거한 다음 해당 내용의 해시를 만들었습니다.

나는 할 것이다 ~ 아니다 "지문"에 아무것도 추가하지 않기 때문에 해시에 호스트 이름 -port-path를 포함시킵니다. (이 정보는 나중에 HTML을 비교하기 위해 나중에 웹 서버를 요청해야 할 때 유용합니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top