예를 들어 stackexchange.com
웹 사이트 개발에 대한 정보를 사이트 소유자 나 Google에 묻지 않고 백엔드에서 어떤 언어가 사용되는지 알 수 있습니까?
.extension
예를 들어, 웹 사이트에는 .php
에서 개발 된 것을 나타낼 수 있는 막대 가 PHP
없지만 확장명이 없으면 어떻게 알 수 있습니까?
예를 들어 stackexchange.com
웹 사이트 개발에 대한 정보를 사이트 소유자 나 Google에 묻지 않고 백엔드에서 어떤 언어가 사용되는지 알 수 있습니까?
.extension
예를 들어, 웹 사이트에는 .php
에서 개발 된 것을 나타낼 수 있는 막대 가 PHP
없지만 확장명이 없으면 어떻게 알 수 있습니까?
답변:
표시기가 있습니다. 일부는 찾기 쉽고 다른 것은 찾기가 어렵습니다.
.php
사이트가 PHP로 작성 .asp
되었음을 나타냅니다. 클래식 ASP를 .aspx
나타냅니다. ASP.NET을 .jsp
나타냅니다. Java JSP를 나타냅니다.JSESSIONID
Java 서버에서 널리 사용되는 쿠키 이름입니다그러나 이들 모두 제거 / 변경 / 가짜 수 있습니다. 일부는 다른 것보다 변경하기가 쉽지만 100 % 신뢰할 수있는 것은 없습니다.
이러한 지표를 변경하는 데는 여러 가지 이유가 있습니다.
JSESSIONID
는 PHPSESSID
입니다.
개발자가 사이트 개발에 대한 정보를 제공하는 도메인에 게시 할 수있는 humans.txt 파일이 있습니다.이 사이트를 누가 작업했는지, 어떤 표준 또는 도구를 사용 했는지도 알 수 있습니다. 그들이 당신이 그런 종류의 정보에 대해 알고 싶다면 정보를 넣어야합니다. 그러나 다른 것과 마찬가지로 이것은 선택 사항이므로 알려주지 않을 수도 있습니다. humans.text를 확인하십시오
웹 마스터가 공개하고 싶지 않다면 불가능하지는 않지만 오히려 힘들 수 있습니다. 몇 가지 프레임 워크에는 몇 가지 특성이 있지만 숨길 수 있습니다.
파일 확장자 : 표준을 사용하는 실제적인 이유는 없으며, 대부분의 최신 MVC는 어쨌든 URL 라우팅을 사용합니다. 따라서 사이트가 한동안 존재하지 않는 한, 아마도 아무것도 보지 못할 것입니다 (예 : stackexchange는 .aspx
확장을 사용하지 않습니다 ).
세션 ID : 예를 들어 PHPSESSID
PHP의 기본값이지만 쉽게 무시할 수 있습니다 .
웹 서버 및 스크립팅 언어 버전이있는 헤더 : 해제 하거나 위조 할 수 있습니다 .
숨기기 어려운 물건 :
[]
이름 에 추가 하여 동일한 쿼리 문자열 변수에 대한 여러 값을 처리 하므로 다음과 같은 내용이 표시 ...?var[]=1&var[]=3&...
됩니다. AFAIK는 이런 방식으로 처리하는 유일한 웹 프레임 워크입니다.한마디로 :이다 가능 하면 백 엔드에 사용하고있는 언어를 숨 깁니다. 간단한 예 : "Hello World"페이지를 고려하십시오. 백엔드에서 어떤 프레임 워크 / 언어가 사용되는지 파악하기가 매우 어렵습니다 (세션 쿠키와 같은 기본 항목이 수동으로 설정되어 있거나 사용 중이 아니라고 가정).
그러나 프레임 워크의 핵심은 기능을 다시 구현하고 표준화 된 방식으로 작업 할 수 있도록하는 것입니다. 거의 모든 프레임 워크에는 세부적인 작은 이야기가있어 충분히 가까이 보이면 사라지게됩니다. 다른 사람들이 지적했듯이 구성을 사용하거나 다양한 표준 기능을 다시 구현하여 숨길 수 있습니다. 그럼에도 불구하고, 나는 큰 사이트의 경우 모든 것을 완전히 숨기는 것이 매우 어려울 것이라고 주장했습니다. 그것을 달성하더라도 프레임 워크를 거의 사용하지 않을 것입니다.
요약하자면, (아래의 신중한 검토와 proding으로) 사용되는 것에 대해 아주 좋은 아이디어를 얻는 것이 거의 항상 가능하다고 말하고 싶습니다. 사용 된 프레임 워크를 숨기는 것이 가능하지만 대규모 사이트에서는 신속하게 실행 불가능합니다.
이전 답변에는 프레임 워크와 언어가 가지고있는 다양한 이야기에 대한 좋은 예가 있습니다. 다양한 뷰 엔진에 특정 공백 관련 동작이 있으며이를 식별하는 데 사용할 수 있다고 덧붙이고 싶습니다. MVC3 +에 사용 된 Razor 엔진에는이를 식별하거나 적어도 용의자 목록을 좁히는 데 사용할 수있는 상당히 구체적인 특징이 있습니다.
이것이 귀하의 질문에 구체적으로 답변하는지는 모르겠지만 Wappalyzer 에게 정말 도움이되는 도구가 있습니다. 웹 사이트에서 사용되는 기술을 밝히는 Firefox / Chrome 확장입니다. 컨텐츠 관리 시스템, 웹 서버, JavaScript 프레임 워크, 분석 도구 등을 감지합니다. 나는 당신이 찾고있는 것이 아니라 사이트가 무엇을 사용하는지에 대한 매우 가까운 아이디어를 제공한다는 것을 알고 있습니다. 이것이 프로그래머에게 보여주는 것입니다.
서버 기술에 대한 단서가 클라이언트에게 보이지 않도록 그런 방식으로 사이트를 작성할 수 있습니다.
그러나 누군가가 IceFaces for Java 와 같은 일부 프레임 워크를 사용하는 경우 요청에서 이와 비슷한 것을 볼 수 있기 때문에 실제로는 불가능합니다.
ice.submit.partial=true&ice.session=c4f4jxT36tM_38848488&ice.view=3&ice.focus=&rand=0.322803445
다른 프레임 워크의 대부분은 페이지 본문 또는 요청 / 응답에 특성 스탬프가 있습니다. 구글을 찾으면 답을 얻을 수 있습니다.
그러나 각 언어에서 Java를 처음부터 HTML로 작성하기로 선택한 경우 (예 : 속도 템플릿) 서버가 JSON 메시지 만 반환 / 수락하고 클라이언트는 완전히 JavaScript로되어있는 순수한 AJAX 방식을 선택합니다. , 기술을 드러내는 캐치되지 않은 예외가 발생할 때까지.
이 사이트를 확인해야합니다 : Built With . 가능한 경우 모든 정보를 알려줍니다.
.php
C로 작성된 CGI-Script 또는 Java로 작성된 서블릿 과 같은 확장을 쉽게 쉽게 매핑 할 수 있습니다 .