nginx 內置變量詳解及隔離進行簡單的攔截
1,nginx內置變量
nginx 有很多內置變量可以進行簡單的過濾。
$arg_name 請求行中的name參數(shù)。 $args 請求行中參數(shù)字符串。 $cookie_name 名為name的cookie。 與$uri相同。 $http_name 任意請求頭的值;變量名的后半部為轉化為小寫并且用下劃線替代橫線后的請求頭名稱。 $host “Host”請求頭的值,如果沒有該請求頭,則為與請求對應的虛擬主機的首要主機名。 $query_string 與$args相同。 $realpath_root 按root指令或alias指令算出的當前請求的絕對路徑。其中的符號鏈接都會解析成真是文件路徑。 $remote_addr 客戶端IP地址。 $remote_port 客戶端端口。 $remote_user 為基本用戶認證提供的用戶名。 $request 完整的原始請求行。 $request_body 請求正文。在由proxy_pass指令和 fastcgi_pass指令處理的路徑中, 這個變量值可用。 $request_body_file 請求正文的臨時文件名。處理完成時,臨時文件將被刪除。 如果希望總是將請求正文寫入文件,需要開啟client_body_in_file_only。 如果在被代理的請求或FastCGI請求中傳遞臨時文件名,就應該禁止傳遞請求正文本身。 使用proxy_pass_request_body off指令 和fastcgi_pass_request_body off指令 分別禁止在代理和FastCGI中傳遞請求正文。 $request_completion 請求完成時返回“OK”,否則返回空字符串。 $request_filename 基于root指令或alias指令,以及請求URI,得到的當前請求的文件路徑。 $request_method HTTP方法,通常為“GET”或者“POST”。 $request_time 請求處理的時間,單位為秒,精度是毫秒(1.3.9, 1.2.6);請求處理時間從由客戶端接收到第一個字節(jié)開始計算。 $request_uri 完整的原始請求行(帶參數(shù))。 $scheme 請求協(xié)議類型,為“http”或“https”。 $status 響應狀態(tài)碼。 $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space 客戶端TCP連接的信息,在支持套接字選項TCP_INFO的系統(tǒng)中可用。 $uri 當前請求規(guī)范化以后的URI。變量$uri的值可能隨請求的處理過程而改變。 比如,當進行內部跳轉時,或者使用默認頁文件
特別需要注意的幾個:
$arg_name 請求行中的name參數(shù)。 $http_name 任意請求頭的值;變量名的后半部為轉化為小寫并且用下劃線替代橫線后的請求頭名稱。 $cookie_name 名為name的cookie
這個幾個都是變量其中的name是具體的參數(shù)名稱。
設計的特別精巧,和lua的類似。具體進行參數(shù)攔截就這樣直接寫了。
2,攔截head中token
比如在做移動客戶端開發(fā)的時候,timestamp,token,sign,uuid參數(shù)
這個4個參數(shù)都是必須加上的。增加防刷的安全性。
token是客戶端登錄token。sign是請求數(shù)據(jù)簽名。
防止別人拿到url然后刷登錄接口。
最后一個是uuid,設備號,也能起到一定的防護作用。
禁用一個header頭里面的uuid為Android-uuid-1122998800。注意這里是$http_uuid 后面的uuid 是header頭里面的參數(shù)。
if ($http_uuid ~ 'android-uuid-1122998800') { return 403 "Error uuid forbidden."; }
進行ip攔截。如果發(fā)現(xiàn)有ip攻擊直接禁用掉。
if ($remote_addr ~ '10.198.2.2') { return 403 "Error uuid forbidden."; }
禁用攻擊日志。這部分日志會影響數(shù)據(jù)處理,直接禁用掉。
access_log off;
4,總結
可以禁用跳轉,處理,其中里面有常用的內置變量。
可以根據(jù)自己的業(yè)務邏輯組織下。提供系統(tǒng)穩(wěn)定性。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
使用Nginx搭建代理服務器(正向代理HTTPS網(wǎng)站)的操作指南
在網(wǎng)絡應用中,代理服務器是用于中轉用戶請求和服務端響應的工具,正向代理主要用于客戶端與外部服務器之間的訪問代理,幫助客戶端隱藏其 IP 地址或訪問受限資源,本文將詳細介紹如何使用 Nginx 搭建正向代理服務器,特別是針對 HTTPS 網(wǎng)站的代理2024-11-11nginx如何實現(xiàn)配置靜態(tài)資源服務器及防盜鏈
這篇文章主要為大家介紹了nginx實現(xiàn)配置靜態(tài)資源服務器及防盜鏈步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11Nginx之upstream被動式重試機制的實現(xiàn)
本文主要介紹了Nginx之upstream被動式重試機制的實現(xiàn),可以通過proxy_next_upstream來自定義配置,具有一定的參考價值,感興趣的可以了解一下2025-03-03Nginx報錯host not found in upstream的解決辦法
本文主要介紹了Nginx報錯host not found in upstream的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08