發表文章

目前顯示的是有「HTTP」標籤的文章

如何測試伺服器端CORS是否有正常作用

圖片
如何測試與驗證CORS是否有正常運作,首先先檢查關於HTTP Header的組態設定是否有正確。 CORS的HTTP header組態指定參數如下: 伺服器端的HTTP header設定完成後,要確定設定沒有生效可以使用cURL工具在客戶端來,直接觀察驗證HTTP header資訊。 以www.example.com為例,我們可以透過觀察HTTP OPTIONS的header資訊來驗證。 # curl -v -X OPTIONS https://www.example.com 透過cURL輸出的header資訊如下: < HTTP/1.1 200 OK < Date: Tue, 19 May 2020 00:55:22 GMT < Content-Type: application/json < Content-Length: 0 < Connection: keep-alive < x-amzn-RequestId: a1b2c3d4-5678-90ab-cdef-abc123 < Access-Control-Allow-Origin: * < Access-Control-Allow-Headers: Content-Type,Authorization < Access-Control-Allow-Methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT 透過HTTP Header資訊輸出來觀察伺服器端的CORS設定是否正確。由輸出的資訊我們可以確認有包含 Access-Control-Allow-Origin Access-Control-Allow-Headers Access-Control-Allow-Methods 有這三個Header其對應的值,依據自行服務的不同有不同的設定。

如何在Nginx所設置的Proxy中可以取得真實客戶的IP位址

如何在Nginx所設置的Proxy架構中可以取得真實客戶的IP位址 常見的情境是需要對客戶端IP進行特定的處理,例如:限定存去次數、流量或是啟用快取服務,此時及需要藉由來源客戶端的IP位置來關聯。 設定前先來說明一下一些變數名稱: $remote_addr Nginx核心模組中( ngx_http_core_module )中的內建變數$remote_addr就是用戶端的IP位址。 X-Forwarded-For X-Forwarded-For(XFF),是一個用來辨識通過HTTP Proxy或是load balance連接到web server,用戶端最原始的IP位址使用的HTTP Request header欄位。 X-Real-IP X-Real-IP為傳統上HTTP reverse proxy會使用非標準的header去告知upstream server關於來源戶端的IP位址,之一個HTTP header欄位。在Nginx的文件( http://nginx.org/en/docs/http/ngx_http_proxy_module.html )範例中可以看到。 $proxy_add_x_forwarded_for Nginx Http proxy模組中( ngx_http_proxy_module )中的內建變數$proxy_add_x_forwarded_for,會使用HTTP Request Header, X-Forwarded-For將來源IP記錄於此,當request經過多台proxy或是load balance產生的多筆IP位址會以逗號分開來,如果一開始沒有設置X-Forwarded-For,那麼在模組中的$proxy_add_x_forwarded_for的值就會跟$remote_addr一樣。 通常可以透過下列的指令來設定 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 設定方法: 在第一層的proxy或是load balancer就先設定nginx的default.conf proxy_set_header X-Real-IP $remote_addr; proxy_set_hea...