簡體   English   中英

根據Apache HTTP服務器中的請求標頭驗證傳入的請求

[英]Validate incoming request based on Request Header in apache http server

我們有一個在weblogic應用服務器上運行的Web應用程序(JQuery和Spring)。 應用服務器前面有一個Apache http服務器。 所有傳入請求都將通過Web服務器到達應用服務器。

現在,我們有一個要求,我們必須驗證傳入的HTTP請求標頭中的值,並且如果存在,則必須將請求發送到應用服務器。 如果沒有,我們將阻止該請求,然后向最終用戶顯示一個靜態錯誤頁面。

我想知道我們是否可以在apache http服務器中實現此邏輯。 請指教。

您可以使用mod_rewrite完成此操作。 您沒有包括您的確切設置是什么,但是如果您有mod_proxy類型的配置,則只想確保重寫不會干擾正常流量的通過。 一般而言,在您的Apache配置中,您將:

  • 開啟改寫
  • 檢查條件
  • 根據條件應用重寫規則

舉一個非常簡單的例子,如果您要在查詢字符串中尋找一個鍵,並禁止訪問(403)(如果不存在),您將執行以下操作:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !somekey
RewriteRule ^.*$ - [F,L]

這可能真的很復雜,您可以將條件鏈接在一起(隱式AND或顯式或不帶[OR]標志),並且可以提供實際的頁面而不是禁止的消息。

與往常一樣,在修補之前備份您的配置,最好使用.htaccess進行測試(盡管出於性能方面的考慮,最好將其移至實際的配置以用於生產負載)。

重寫文檔也是一個很好的資源:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

這確實是相當不錯的文檔。 對於某些指針-您將需要查找標志([L] =最后; [P] =被視為代理請求; [F] =禁止等),並且您需要通常熟悉正則表達式語法的人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM