所以,如果你正在使用Java和JSP編寫一個網站,並且不希望用戶知道你寫了什麼語言,你會用什麼技術?我可以使用什麼策略來阻止用戶發現網站編寫的語言?
回答
如果您正在使用某種框架,比如Struts2,那麼您將擁有一個映射到調度程序servlet的擴展名(* .action或任何您選擇的)。調度程序將請求「轉發」到WEB-INF目錄中的JSP。用戶只能看到定向到servlet的URL,並取回HTML。他們無法分辨模板語言是什麼。既然你可以選擇任何你喜歡的servlet映射,你可以製作一些東西,甚至可以用諸如「.php」或「.asp」之類的東西來誤導它們。
當然,您可能在Web應用程序目錄中有一些JSP,而不是在WEB-INF中。您可以給這些不同的擴展名,並告訴容器將它們作爲JSP進行處理,方法是創建一個帶有url-pattern
元素的<jsp-property-group>
,該元素指定web.xml中的假擴展名。
您還需要檢查容器的文檔以確定如何隱藏可能發送的任何服務器版本信息。另一個要探討的是如何將會話cookie名稱更改爲「jsessionid」以外的內容。這有點讓人失望,但它是Servlet規範的一部分,有些容器不支持更改它。
+1。使用Spring MVC,通常控制器映射爲「.htm」 - 因此沒有實現特定的擴展 – 2009-04-19 01:08:01
我會做的唯一的事情是如何將請求傳遞給沒有擴展名的頁面(jsp,aspx,asp等)。這可以通過手動解析請求url來完成。此外,重新配置您的服務器以隱藏它的詳細信息。
你可以用mod_rewrite來幫忙嗎? – 2009-04-19 01:05:02
隨着其他答案在這裏,你會想確保你正確地處理你的應用程序錯誤。如果你讓一個異常出來,Web容器處理它,這將是非常明顯的你正在使用。
1)製作你自己的文件擴展名並配置你的服務器,將它映射到你選擇的處理程序。例如重新映射。調用ASP.NET處理程序或PHP處理程序。
2)確保您使用的任何處理程序都不會將標題放入以表明它是什麼,就像大多數人一樣。如果是這樣,請將其配置爲不要,或者將其前面的內容放在堆棧中以在傳輸之前刪除這些標頭。
您還需要檢查應用程序發回的HTTP響應標頭。通常,在響應頭文件中找到爲應用程序提供動力的技術是微不足道的。
在Apache的配置文件,下面的線使其認識到.PHP的PHP腳本並執行它是這樣:
AddHandler php5-script .php
其更改爲.asp和Apache會認識到.asp文件作爲PHP腳本。將它改爲.blarg,並且Apache會將.blarg文件識別爲PHP腳本。
- 1. 我可以使用什麼編程語言將其實現到我的網站?
- 2. FILO使用Java語言編寫的策略
- 3. 我會用什麼編譯器來編寫機器語言?
- 4. 什麼可以阻止我的BufferedLogger寫出來?
- 5. 我可以使用什麼來分析我的50+網站?
- 6. Picasa使用什麼語言編寫?
- 7. 使用什麼語言編寫Go編程語言?
- 8. 我怎麼可以用匯編語言
- 9. 什麼阻止我的網站在我的網站? HTML,CSS
- 10. 我可以在我的網站上使用什麼來實現電報信息?
- 11. 使用delphi來阻止網站
- 12. RabbitMQ用什麼語言編寫的?
- 13. Xcode是用什麼語言編寫的?
- 14. 現代Unix工具是用什麼編程語言編寫的?
- 15. 什麼語言可以用來自動化網絡測試?
- 16. Rest Assured可以使用什麼語言
- 17. 使用ASP.Net實現多語言網站
- 18. 我的網站用戶可以發現這個webaddress嗎?
- 19. 使用什麼技術和編程語言來製作本網站?
- 20. 網站使用的語言
- 21. 使用Java阻止網站
- 22. Facebook dispatcher.js用什麼語言編寫?
- 23. 應該用什麼語言編寫API?
- 24. 用什麼語言編寫.NET Framework?
- 25. 什麼語言被用來編寫Rust編譯器?
- 26. 實現MixedParamUrlCodingStrategy可以防止我的網站使用CSS
- 27. 可以用相同的語言L來實現語言L的編譯器嗎?
- 28. 在高流量網站中動態阻止IP:最佳策略?
- 29. 我可以使用webmatrix發佈網站
- 30. 什麼語言可以編譯爲javascript?
我的第一個問題是,爲什麼? :)爲了安全起見,混淆通常是一種錯誤的安全感,但大多數情況下我只是好奇而已。 – Anthony 2009-04-19 00:55:55
確實。何必? – ceejayoz 2009-04-19 02:11:37