nginx - 怎么判斷網(wǎng)站使用那種語(yǔ)言開(kāi)發(fā)的后臺(tái)?
問(wèn)題描述
如題:怎么判斷網(wǎng)站使用那種語(yǔ)言開(kāi)發(fā)的后臺(tái)?
問(wèn)題解答
回答1:謝謝 @精英王子 提到了我的項(xiàng)目:https://github.com/justjavac/ChromeSnifferPlus 感興趣的可以直接去查看源碼。
1. 根據(jù) meta 信息判斷不少的網(wǎng)站會(huì)在 meta 添加框架的信息,比如 Joomla、XOOPS、MediaWiki 會(huì)添加 generator;phpBB 會(huì)添加 copyright;Avactis 會(huì)添加 author。通過(guò)這些可以探測(cè)網(wǎng)站使用的建站系統(tǒng),從而知道使用的語(yǔ)言。
2. 根據(jù) script 標(biāo)簽判斷和上面的一樣,探測(cè)網(wǎng)站使用的建站系統(tǒng),從而知道使用的語(yǔ)言。
3. 根據(jù) header 信息通過(guò) header 信息的 x-powered-by 等可以探測(cè)后臺(tái)使用的語(yǔ)言
4. 根據(jù) session根據(jù)傳遞 session id 的 cookie,比如 PHP 使用的會(huì)話ID是 PHPSESSID,JSP 使用的會(huì)話 ID 是 JSESSION。
5. 根據(jù) error page通過(guò) error page 也可以看到很多信息。比如訂票網(wǎng)站就是 Java 開(kāi)發(fā)的。
6. 根據(jù)目錄結(jié)構(gòu)包括 url 的結(jié)構(gòu),靜態(tài)文件的結(jié)構(gòu)等,如果使用了開(kāi)發(fā)框架或者 CMS 系統(tǒng),這些目錄結(jié)構(gòu)都有一定的規(guī)則。
7. 根據(jù)網(wǎng)頁(yè)內(nèi)容可以用正則去匹配 HTML 代碼,找出 copyright、powered by,進(jìn)而得知使用的語(yǔ)言。
8. 根據(jù) server通過(guò) 404 或者 header 信息,得出 server 信息,進(jìn)而得知編程語(yǔ)言,比如 nodejs、tomcat等。
回答2:這個(gè)是個(gè)比較復(fù)雜的問(wèn)題。
根據(jù) url 判斷對(duì)于 url 有后綴的來(lái)說(shuō),再簡(jiǎn)單不過(guò)了,.php 的自然是 php 開(kāi)發(fā)的,asp, aspx 一樣的道理,當(dāng)然還有比如 .action .do 什么的,一般都是 java
根據(jù)靜態(tài)文件結(jié)構(gòu)來(lái)看這個(gè)不同的開(kāi)發(fā)框架差異還是比較大的,比如 rails 會(huì)將 js 壓縮成 application-7fds7afds98afdsa8.js 類(lèi)似的樣子, django 等框架也有自己的命名規(guī)則。
根據(jù)出錯(cuò)頁(yè)面有些比較二的頁(yè)面,你在頁(yè)面上胡亂整下,故意做些錯(cuò)誤的提交,也許會(huì)冒出來(lái)報(bào)錯(cuò)頁(yè)面,上面可能會(huì)有你要的東西(不過(guò)會(huì)有這種情況的網(wǎng)站,參考價(jià)值也不大)
根據(jù)聲明看 footer 里面的 powerd by ,如果是使用現(xiàn)在工具搭建的網(wǎng)站,會(huì)有比如 powerd by wordpress, powered by django 之類(lèi)的吧。
根據(jù)網(wǎng)站的招騁如果該網(wǎng)站有招騁的欄目,看看他們?cè)谡惺裁礃拥拈_(kāi)發(fā)人員,也能猜出一二。
回答3:傳送門(mén): BuiltWith on Chrome Webstore
https://github.com/justjavac/ChromeSnifferPlus
回答5:有時(shí)候在Response Header中有項(xiàng)X-Powered-By,可以看到開(kāi)發(fā)語(yǔ)言。
理論上你不可能百分百正確地通過(guò)客戶(hù)端與服務(wù)端后臺(tái)的交互來(lái)判斷出后臺(tái)的開(kāi)發(fā)語(yǔ)言, 因?yàn)檎Z(yǔ)言的圖靈等價(jià), 另外一種不同的語(yǔ)言也可以開(kāi)發(fā)出表現(xiàn)一樣的后臺(tái)出來(lái). 可以向這個(gè)后臺(tái)的相關(guān)人打聽(tīng)他們使用的語(yǔ)言.對(duì)于一些語(yǔ)言的網(wǎng)絡(luò)框架, 也可以通過(guò)抓取 HTTP 數(shù)據(jù)流, 根據(jù) HTTP 首部字段 server 來(lái)判斷使用了什么框架, 進(jìn)而判斷出使用了什么語(yǔ)言.
回答7:補(bǔ)充一個(gè)。有時(shí)候看他們公司在招聘什么工程師就可以判斷他們產(chǎn)品是什么語(yǔ)言開(kāi)發(fā)的了。
回答8:提一條 可以看后綴比如xxx.php,那就可能是php的,不過(guò)不準(zhǔn),這個(gè)是可以改的
回答9:這個(gè)很難全部都準(zhǔn)確的得到結(jié)果吧,無(wú)論是URL還是任何東西都可以改變,只是說(shuō)可以根據(jù)經(jīng)驗(yàn)大概猜測(cè)一下,當(dāng)然沒(méi)有做任何處理的,比如 xx.php 是可以知道的。。
回答10:我以前都是看表單的action,不過(guò)現(xiàn)在的網(wǎng)站都聰明了
相關(guān)文章:
1. javascript - node.js promise沒(méi)用2. node.js - nodejs如何發(fā)送請(qǐng)求excel文件并下載3. 為什么我ping不通我的docker容器呢???4. docker-machine添加一個(gè)已有的docker主機(jī)問(wèn)題5. golang - 用IDE看docker源碼時(shí)的小問(wèn)題6. java - 我在用Struts2上傳文件時(shí),報(bào)以下錯(cuò)誤怎么回事?7. android 如何實(shí)現(xiàn)如圖中的鍵盤(pán)上的公式及edittext的內(nèi)容展示呢8. mysql - 求SQL語(yǔ)句9. MySQL如何實(shí)現(xiàn)表中再嵌套一個(gè)表?10. PHP注冊(cè)功能
