2013-04-01 60 views
-1

我的需求是保護靜態文件,使其無法從url訪問。我將這些CSS和js文件放入WEB-INF中,但現在我無法從我的jsp頁面。我試着跟着。訪問WEB-INF中的靜態文件

webpages| 
    WEB-INF| 
     img| 
      batman.jpg 
test.jsp 

現在我嘗試了從JSP頁面來接取爲<img src="../WEB-INF/img/batman.jpg"/>以及

<img src="img/batman.jpg"/> 

但沒有works.test.jsp放在WEB-INF之外,並把它放在WEB-INF內目前不是我的選擇。我沒有使用Spring框架只是基本的jsp和servlet,我想爲他們的解決方案。Thnks傢伙。

回答

1

正如EJP所說的,如果你想在你的頁面中嵌入圖片,你必須通過URL訪問它。可以這樣想:即使您設法限制對圖像源的訪問(儘管您無法做到),用戶將能夠將其從屏幕上覆制下來,這違反了您的假設,並且將留給客戶端

但是當然有一些解決方法可以爲您的問題實現「次優」功能。我將列出其中一些浮現在腦海:

  1. 把水印。將您的圖像放置在公共文件夾中,但通過爲每個合理圖像提供水印來修改內容。通過這種方式,您不會限制訪問權限,但會降低圖像曝光後欺詐行爲的可能性;
  2. 修改文件名。您可以修改圖像的文件名,並在服務器上的「真實」名稱和虛假名稱之間保持對應關係,例如,在數據庫中。這樣可以顯着降低安全圖像質量泄漏的風險;
  3. 介紹客戶端限制。您可以在您的圖像元素上引入客戶端限制,例如禁止彈出式菜單的外觀,在對話框中顯示完整圖像,強制用戶認爲圖像受到保護等。當然,任何瀏覽器經驗不多的人都可以獲取內容,但基本用戶不會。

我認爲還有更多的方法來降低的不當行爲的可能性,但這些都不是辦法概率降低到零。所以,你基本上只能打開你的圖像,而你可能通過在你所有的合理圖像上加水印來使惡意的工作變得更加困難。

+0

分類爲thnks但我希望css和js文件是secure.Yeah他們都可以從螢火蟲或其他工具查看,但我留在這些文件中的評論是不可見的,但如果他們通過url訪問它們然後他們將能夠看到這些評論。 – ntstha

+0

你當然可以保護所有的資源文件,並將它們「清理」到一個servlet中。但是這是一個相當容易出錯的方法,你最好有一個用於開發的文件(帶有你的註釋的文件)和一個用於生產的文件(乾淨的)。它會容易得多。 – skuntsel

1

您的要求是相互矛盾的。您正在通過URL使資源無法訪問,然後嘗試通過URL訪問它。

決定你的想法。

+0

好的話應該是什麼方法。我不想讓用戶通過直接給它的url來看我的css和js文件。但是它仍然應該從我的jsp頁面訪問。請幫助 – ntstha

+1

正確的點! – skuntsel

+0

@ntstha如果瀏覽器可以訪問它們,用戶也可以直接訪問它們。這兩種情況沒有區別。你所要求的東西體現了矛盾。 – EJP