Например, stackexchange.com
не спрашивая владельца сайта или Google их информацию о разработке сайта, возможно ли узнать, какой язык используется в бэкэнде?
Кажется, у веб-сайта нет .extension
панели, например, .php
которая может указывать, которая разработана PHP
, но без расширения, как я могу это узнать?
web-development
server
Тед Вонг
источник
источник
.php
CGI-Script, написанный на C, или Servlet, написанный на Java.Ответы:
Есть показатели. Одни легче найти, другие сложнее.
.php
указывает, что сайт написан на PHP,.asp
указывает на классический ASP,.aspx
указывает на ASP.NET,.jsp
указывает на Java JSP, ...JSESSIONID
широко используемое имя файлов cookie на серверах JavaНо все это можно удалить / изменить / подделать. Некоторые легче изменить, чем другие, но ни один из них не на 100% надежен.
Существуют различные причины для изменения этих показателей:
источник
JSESSIONID
естьPHPSESSID
.Хорошо, есть файл humans.txt, который разработчик может разместить в домене, который дает некоторую информацию о разработке сайта, возможно, кто работал над этим и какие стандарты или инструменты использовались. Если они хотят, чтобы вы знали об этих видах информации, они могут / должны разместить ее там. Однако, как и все остальное, это не является обязательным, поэтому он не может гарантировать вас либо информировать. Проверьте humans.text
источник
Нет, это может быть довольно сложно, если не невозможно, если веб-мастер не хочет раскрывать. Есть несколько характеристик нескольких фреймворков, но они могут быть скрыты.
Расширения файлов: нет никакой реальной причины использовать стандартные, и большинство современных MVC так или иначе используют маршрутизацию URL. Так что, если сайт не был в течение некоторого времени, вы, вероятно, не увидите ничего (например, stackexchange не использует
.aspx
расширение);идентификаторы сессии: например,
PHPSESSID
по умолчанию для PHP, но может быть легко переопределено ;Заголовки с веб-сервером и версиями языка сценариев: могут быть отключены или даже подделаны.
Материал, который сложнее скрыть:
[]
к имени, таким образом , вы увидите что - то вроде:...?var[]=1&var[]=3&...
. AFAIK, это единственный веб-фреймворк, который обрабатывает это таким образом.источник
Короче говоря: можно скрыть, какой язык вы используете в бэк-энде. Тривиальный пример: рассмотрим страницу «Hello World»; было бы чрезвычайно сложно выяснить, какой фреймворк / язык использовался на бэкэнде (при условии, что базовые вещи, такие как сеансовые куки-файлы, установлены вручную или не используются).
Однако смысл фреймворков заключается в том, чтобы избавить вас от необходимости повторной реализации функциональности и заставить вас работать стандартизированным образом. Почти у всех платформ есть свои специфические маленькие контрольные сигналы, которые выдают их, если вы посмотрите достаточно близко. Как уже отмечали другие, можно попытаться скрыть их, используя конфигурацию или повторно реализуя различные стандартные функции. Тем не менее, я бы сказал, что для больших сайтов будет крайне сложно полностью спрятать все, и даже если вы достигнете этого, вы будете использовать очень мало своей инфраструктуры.
Подводя итог, я бы сказал, что почти всегда можно получить очень хорошее представление о том, что используется под ним (с некоторым тщательным изучением и подталкиванием). Скрытие используемой основы возможно, но быстро становится невозможным для больших площадок.
В предыдущих ответах есть несколько хороших примеров различных контрольных сигналов, которые есть у фреймворков и языков. Я хотел бы добавить, что различные механизмы представления имеют специфическое поведение, связанное с пробелами, которое может использоваться для их идентификации. Движок Razor, используемый в MVC3 +, имеет некоторые довольно специфические причуды, которые могут быть использованы для его идентификации или, по крайней мере, для сужения списка подозреваемых (опять же, вы можете обойти его, но потом, используете ли вы его?).
источник
Я не знаю, отвечает ли это конкретно на ваш вопрос, но есть инструмент, который мне действительно помог: Wappalyzer . Это расширение Firefox / Chrome, которое раскрывает технологии, используемые на веб-сайтах. Он обнаруживает системы управления контентом, веб-серверы, JavaScript-фреймворки, аналитические инструменты и многие другие. Я знаю, что это не совсем то, что вы ищете, но это дает вам очень точное представление о том, что сайт использует. Это то, что он показывает для programmers.stackexchange.com
источник
Можно написать сайт таким образом, чтобы клиенту не было видно никаких подсказок о технологии сервера.
Однако, когда кто-то использует некоторые фреймворки, такие как IceFaces для Java , это практически невозможно сделать, потому что вы увидите нечто подобное в своих запросах:
Многие другие фреймворки имеют свои характерные штампы либо в теле страницы, либо в запросах / ответах. Найдите их, Google, и у вас будет ответ.
Тем не менее, на каждом языке, если вы решите создать HTML с нуля (в мире Java примером могут быть шаблоны скорости ) или выбрать чистый AJAX-способ, где сервер возвращает / принимает только сообщения JSON, а клиент полностью на JavaScript - трудный путь До тех пор, пока вы не вызовете незамеченное исключение, раскрывающее технологию под.
источник
На сайтах, которые используют полнофункциональный фреймворк или CMS, иногда вы можете попробовать запросить страницу администратора, вам будет предложено окно входа в систему и определите, с какого фреймворка это произошло, потому что большинство людей не повторяют шаблон администратора. Например, если ваш сайт - example.com, попробуйте перейти на example.com/admin/ или example.com/wp-admin/ (wordpress).
источник
Вы должны проверить этот сайт: построен с . Это позволяет вам знать всю эту информацию, если она доступна.
источник
Нет, невозможно найти язык, используемый на веб-сайтах, просмотрев исходный код веб-страницы и выполнив поиск по наличию языков. из-за использования более одного языка для создания сайта, чтобы обеспечить высокую безопасность
источник