怎麼知道一個網站是由 ASP 、PHP 或者 .NET 開發的?


這個事情就像是分辨一個人是男的還是女的一樣,有很多的性別特徵可以幫助我們,例如頭髮長短(短髮女士不適合),胸部大小(小學生不適合),衣著(中性服飾不適合),聲音(女低音不適合)。但無論如何,你還是很難分辨出偽娘(故意偽裝成其他技術)。除了扒掉他們的衣服(黑客入侵伺服器)。


一個是url的擴展名;

另外一個就是,使用http的抓包工具,看響應頭;比如ie的httpwatch fiddler, firefox的firebug等等;

---

如果別人網站隱藏的夠好的話,目前我所了解的,應該都看不了;


少些在地址欄的網址後綴名判斷.net的是.aspx和.asp,java的是.jsp,php的是.php,多些用抓包工具查看IE7以上瀏覽器集成了這個工具,Chrome,火狐(下載FireBug),快捷鍵都是F12,看請求的頭部。

很多時候請求的頭部中也沒有X-Powered-By,這種情況下可以看錯誤頁面的信息判斷,但是大多網站都多錯誤頁面進行了設計,其實就是就算頁面你可看到是用什麼做的但是你也不會知道底層到底什麼語言寫的比如最大的社交網站facebook,頁面時用php但是底層都是用c++等語言寫的。


還有一個辦法,看網站找什麼開發語言的工程師。


相應頁面的腳本後綴名是最常見的特徵:.NET 是 xxx.aspx、ASP 是 xxx.asp、PHP 是 xxx.php……

但是理論上 Web 站點完全有可能利用技術手段掩蓋其一切內部技術細節 (若條件允許也應該這麼做) ——「URL 重寫」就是很常見的技術

如果遇到這樣的站點,除了直接問網站運營團隊詢問之外,別無他法

而通常情況下,總能通過一些網站開發者遺漏的蛛絲馬跡獲得其運行平台的特徵

一般說來,我會首先使用的方式是——「人為製造異常」,誘使伺服器產生異常信息明顯經過伺服器腳本解釋過的錯誤結果頁面

比如輸入一個不存在的頁面地址,此地址的頁面後綴名與各平台默認的腳本後綴名對應(見第一行)

當然,一個製作完善的網站網站可能使用「自定義異常處理」並向瀏覽器最終輸出與其他「非腳本解釋錯誤」(比如 Web 伺服器通用 404 錯誤)相似的結果以掩蓋之


最直觀的方法是看後綴名,不過這個東西是可以隨意改變的,而且很多人都喜歡改。

----------------

其他辦法:

用 firebug 看網頁 header 信息中的 server 值,IIS 的話一般是 asp 或者 aspx , apache/ngnix 的話一般是 php , tomcat 一般是 jsp ,等等。

----------------

當然這都不是絕對的,有心想隱藏的話你是看不出來的。


chrome 插件:Web Technology Notifier,看名字就知道幹什麼的了吧~

https://chrome.google.com/webstore/detail/fnpgnmindcbkjbpblcklealdhnogmlko

當然,技術上來講都是可以掩蓋和偽造的。


首先當然是查看url的「擴展名」,不過如果用了urlRewrite的話就沒用了

之後就是看html代碼,用.net webForm開發的會有明顯的特徵:有用於存儲ViewState的hidden標籤;js部分會有個__doPostBack方法;標籤命名亂糟糟的,類似「ctrl001_row1_」之類的;整個頁面只有一個form;html代碼的縮進格式也是比較亂。

其它的,.net mvc、php、jsp一般沒什麼特徵,看不出來


從技術角度上講,是可以完全掩蓋的,但從實際角度講,大多數都沒掩蓋。除了少數大型的站點。

方法如上面幾位講的,看主機頭,看伺服器,看錯誤提示方式,甚至看站點掛掉的時候報錯信息。如果了解三種開發語言,甚至可以從頁面源代碼中找到不同的編碼習慣。


如果全站靜態真不好判別。

因為IIS的伺服器即使是PHP的也會返回http://asp.net

一般是在首頁後面打index.php.

如果有,肯定是PHp.如果沒有,一般看 錯誤提示能知道


大公司看招聘廣告。

小公司看Response Headers。


瀏覽器裝個wappalyzer

http://wappalyzer.com/


Chrome 有一個插件叫sniffer,記不清是不是叫這個,但是搜sniffer肯定能找到,裝完之後會在地址欄上顯示網站使用到的一些框架和使用的語言,個人感覺很好用


同意 @鄭少宏的說法,對小團隊特別准,參見下例:

ResearchGate的招聘頁面:

一目了然~


我想知道知乎是什麼語言做的,測試出來的回一下唄,剛自己試了一下,沒成功


.......最簡單的方法是通過nmap掃描其主機操作系統,windows的基本上就是ASP和.net,非windows的多半是php


如果開發人員有心要隱藏你是很難看出來的。

如果開發人員不隱藏,那麼可以從以下幾個方式來看比較簡單:

1、看後綴,如.JSP,.ASP,.ASPX,.PHP...當然,這種方法現在越來越沒用了,因為各種框架什麼的早不這麼用了,http://ASP.NET用上MVC後也不用ASPX了。

2、看響應,如PHP,http://ASP.NET都有很明顯的響應頭標識

但是,你用這兩個辦法去看淘寶的首頁你是猜不出來的,因為他們把這些信息都幹掉了~


網站後面加 ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 如果出來的是一個 php 的 logo 就是 PHP 的,其它的我就不知道了,而且現在有些大站用了 php 就算加這個也不顯示。


抓包看下存在cookie上的sessionId名稱


sniffer plus


推薦閱讀:

Asp.Net Web Form開發模型是否正在走向末路?
做網站,是要更注重用戶體驗,還是要設法迎合SEO優化呢?為什麼?

TAG:前端開發 | PHP | ASPNET |