Na przykład, stackexchange.com
bez pytania właściciela witryny lub Google o informacje na temat tworzenia witryny, czy można wiedzieć, jakiego języka używa się w zapleczu?
Wygląda na to, że strona internetowa nie ma .extension
paska, na przykład, .php
który może wskazywać, który jest opracowany PHP
, ale bez rozszerzenia, skąd mam to wiedzieć?
web-development
server
Ted Wong
źródło
źródło
.php
skrypt CGI napisany w C lub serwlet napisany w Javie.Odpowiedzi:
Istnieją wskaźniki. Niektóre są łatwiejsze do znalezienia, inne trudniejsze.
.php
wskazuje, że strona jest napisana w PHP,.asp
wskazuje klasyczną ASP,.aspx
wskazuje ASP.NET,.jsp
wskazuje JSP Java, ...JSESSIONID
jest powszechnie używaną nazwą pliku cookie na serwerach JavaAle wszystkie z nich można usunąć / zmienić / sfałszować. Niektóre są łatwiejsze do zmiany niż inne, ale żadne nie jest w 100% niezawodne.
Istnieją różne powody, aby zmienić te wskaźniki:
źródło
JSESSIONID
jestPHPSESSID
.Cóż, istnieje plik people.txt, który programista może umieścić w domenie, który zawiera informacje o rozwoju witryny, być może kto nad nią pracował i jakie standardy lub narzędzia zostały zastosowane. Jeśli chcą, abyś wiedział o tego rodzaju informacjach, powinien / powinien je tam umieścić. Jednak, podobnie jak wszystko inne, jest to opcjonalne, więc nie może zagwarantować, że cię poinformuje. Sprawdź people.text
źródło
Nie, może to być trudne, jeśli nie niemożliwe, jeśli webmaster nie chce tego ujawnić. Istnieje kilka cech kilku frameworków, ale można je ukryć.
rozszerzenia plików: nie ma prawdziwego powodu, aby używać standardowych, a większość współczesnych MVC i tak używa routingu adresów URL. Więc jeśli strona nie będzie już dostępna przez jakiś czas, prawdopodobnie jej nie zobaczysz (np. Stackexchange nie używa
.aspx
rozszerzenia);identyfikatory sesji: na przykład
PHPSESSID
jest domyślny dla PHP, ale można go łatwo zastąpić ;nagłówki z serwerem WWW i wersjami językowymi skryptów: można je wyłączyć, a nawet sfałszować.
Rzeczy trudniejsze do ukrycia:
[]
do nazwy, co chcesz zobaczyć coś takiego:...?var[]=1&var[]=3&...
. AFAIK, to jedyna platforma internetowa, która obsługuje to w ten sposób.źródło
W skrócie: Jest to możliwe , aby ukryć to, co język, którego używasz na back-end. Trywialny przykład: rozważ stronę „Hello World”; byłoby bardzo trudno dowiedzieć się, jaki framework / język był używany na zapleczu (zakładając, że podstawowe rzeczy, takie jak sesyjne pliki cookie są ustawiane ręcznie lub nie są używane).
Jednak celem ram jest zaoszczędzenie konieczności ponownej implementacji funkcjonalności i sprawienie, abyś pracował w znormalizowany sposób. Prawie wszystkie ramy mają swoje specyficzne małe opowieści, które je rozdadzą, jeśli spojrzysz wystarczająco blisko. Jak zauważyli inni, można spróbować je ukryć, używając konfiguracji lub ponownie wdrażając różne standardowe funkcje. Niemniej jednak twierdzę, że w przypadku dużych witryn bardzo trudno byłoby całkowicie ukryć wszystko, a nawet jeśli to osiągniesz, nie wykorzystasz bardzo dużo swojego frameworka.
Podsumowując, powiedziałbym, że prawie zawsze można uzyskać bardzo dobre wyobrażenie o tym, co jest używane pod spodem (po dokładnym zbadaniu i popchnięciu). Ukrywanie używanego frameworka jest możliwe, ale szybko staje się niewykonalne dla dużych witryn.
Poprzednie odpowiedzi zawierają kilka dobrych przykładów różnych narracji dostępnych w ramach i językach. Chciałbym dodać, że różne silniki widoków mają specyficzne zachowanie związane z białymi znakami, które można wykorzystać do ich identyfikacji. Silnik Razor zastosowany w MVC3 + ma pewne dość specyficzne dziwactwa, które można by wykorzystać do jego identyfikacji, a przynajmniej zawęzić listę podejrzanych (ponownie, możesz to zrobić krok po kroku, ale czy używasz tego?).
źródło
Nie wiem, czy to konkretnie odpowiada na twoje pytanie, ale istnieje narzędzie, które było mi bardzo pomocne: Wappalyzer . Jest to rozszerzenie do przeglądarki Firefox / Chrome, które odkrywa technologie stosowane na stronach internetowych. Wykrywa systemy zarządzania treścią, serwery WWW, frameworki JavaScript, narzędzia analityczne i wiele innych. Wiem, że nie jest to dokładnie to, czego szukasz, ale daje bardzo bliskie pojęcie o tym, z czego korzysta strona. To pokazuje programmers.stackexchange.com
źródło
Możliwe jest napisanie strony w taki sposób, aby klient nie widział żadnych wskazówek na temat technologii serwera.
Jednak gdy ktoś używa niektórych frameworków, takich jak IceFaces for Java , jest to praktycznie niemożliwe, ponieważ zobaczysz coś takiego w swoich żądaniach:
Wiele innych ram ma swoje charakterystyczne znaczki w treści strony lub w żądaniach / odpowiedziach. Znajdź je, google, a będziesz miał odpowiedź.
Jednak w każdym języku, jeśli zdecydujesz się utworzyć HTML od zera (w świecie Java przykładem mogą być szablony prędkości ) lub wybierzesz czysty sposób AJAX, w którym serwer zwraca / akceptuje tylko wiadomości JSON, a klient jest w całości w JavaScript - trudny sposób , dopóki nie spowodujesz nieprzechwyconego wyjątku, który ujawnia technologię.
źródło
W witrynach, które używają pełnowymiarowego frameworka lub CMS, czasami możesz spróbować wysłać zapytanie do strony administratora, zobaczysz okno logowania i określisz, z jakiej platformy pochodzi, ponieważ większość osób nie zmienia szablonu administratora. Na przykład, jeśli Twoja witryna to example.com, spróbuj przejść do example.com/admin/ lub example.com/wp-admin/ (wordpress).
źródło
Powinieneś sprawdzić tę stronę: Built With . Pozwala poznać wszystkie te informacje, jeśli są dostępne.
źródło
Nie, nie można znaleźć języka używanego na stronach internetowych, przeglądając kod źródłowy strony i sprawdzając istnienie języków. z powodu użycia więcej niż jednego języka do tworzenia strony internetowej w celu zapewnienia wysokiego bezpieczeństwa
źródło