伊谢尔伦2017-05-16 17:05:58
謝謝 @精英王子 提到了我的專案:https://github.com/justjavac/ChromeSnifferPlus 有興趣的可以直接去查看原始碼。
不少的網站會在 meta 添加框架的信息,例如 Joomla、XOOPS、MediaWiki 會添加 generator;phpBB 會添加 copyright;Avactis 會添加 author。透過這些可以探測網站使用的網站系統,從而知道使用的語言。
和上面的一樣,探測網站使用的建站系統,從而知道使用的語言。
透過 header 訊息的 x-powered-by 等可以偵測後台使用的語言
根據傳遞 session id 的 cookie,例如 PHP 使用的會話ID是 PHPSESSID,JSP 使用的會話 ID 是 JSESSION。
透過 error page 也可以看到很多資訊。例如訂票網站就是 Java 開發的。
包含 url 的結構,靜態檔案的結構等,如果使用了開發框架或 CMS 系統,這些目錄結構都有一定的規則。
可以用正規去匹配 HTML 程式碼,找出 copyright、powered by,進而得知使用的語言。
透過 404 或 header 訊息,得出 server 訊息,進而得知程式語言,如 nodejs、tomcat等。
PHP中文网2017-05-16 17:05:58
這個是個比較複雜的問題。
對於 url 有後綴的來說,再簡單不過了,.php 的自然是 php 開發的,asp, aspx 一樣的道理,當然還有比如 .action .do 什麼的,一般都是 java
這個不同的開發框架差異還是比較大的,例如 rails 會將 js 壓縮成 application-7fds7afds98afdsa8.js 類似的樣子, django 等框架也有自己的命名規則。
有些比較二的頁面,你在頁面上胡亂整下,故意做些錯誤的提交,也許會冒出來報錯頁面,上面可能會有你要的東西(不過會有這種情況的網站,參考價值也不大)
看 footer 裡面的 powerd by ,如果是使用現在工具搭建的網站,會有像是 powerd by wordpress, powered by django 之類的吧。
如果該網站有招騁的欄目,看看他們在招什麼樣的開發人員,也能猜出一二。
世界只因有你2017-05-16 17:05:58
理論上你不可能百分百正確地透過客戶端與服務端後台的交互來判斷出後台的開發語言, 因為語言的圖靈等價, 另外一種不同的語言也可以開發出表現一樣的後台出來. 可以向這個後台的相關人打聽他們使用的語言.
對於一些語言的網頁框架, 也可以透過抓取 HTTP 資料流, 根據 HTTP 首部欄位 server 來判斷使用了什麼框架, 進而判斷出使用了什麼語言.
巴扎黑2017-05-16 17:05:58
這個很難全部都準確的得到結果吧,無論是URL還是任何東西都可以改變,只是說可以根據經驗大概猜測一下,當然沒有做任何處理的,比如 xx.php 是可以知道的。 。