某些網站系統需要用戶上傳圖片等文件到某些目錄下,難免程序有些漏洞,導致用戶上傳了php、cgi等等可執行的文件,導致網站陷入非常為難的境地. 此時我們可以通過nginx來禁止用戶訪問這些目錄下的可執行文件。如果不禁止,nginx會直接去下載web目錄下文件,如果有配置文件,並可以直接暴露一些配置文件源代碼。測試時要清理瀏覽器緩存,瀏覽器會緩存下載的文件。如果有類似配置文件,建議不要放在web目錄下,會更加安全。
禁止訪問特定后綴文件
location ~ \.(php|jsp|txt)$ {
deny all;
}
禁止訪問某個目錄下的php后綴文件
location /directory {
location ~ .*\.(php)?$ {
deny all;
}
}
禁止訪問多個目錄下的php后綴文件
location ~* ^/(directory1|directory2)/.*\.(php)${
deny all;
}
禁止訪問目錄或目錄下文件
#禁止訪問目錄
location ^~ /test/ {
deny all;
}
#禁止訪問目錄下文件
location ^~ /test {
deny all;
}
nginx location的匹配語法
= 表示精確匹配
^~ 表示uri以某個字符串開頭
~ 正則匹配(區分大小寫)
~* 正則匹配(不區分大小寫) !和!*分別為區分大小寫不匹配及不區分大小寫不匹配的正則
/ 任何請求都會匹配
匹配優先級: = > ^~ > /
nginx配置禁特定路徑下的反向代理
nginx配置禁止訪問目錄或禁止訪問目錄下的文件
nginx跨域處理
帶你深入了解nginx基本登錄認證(包含配置步驟)
