Nginx下10個安全問題提示

来源:http://www.cnblogs.com/shouce/archive/2016/01/16/5134915.html
-Advertisement-
Play Games

Nginx是當今最流行的Web伺服器之一。它為世界上7%的web流量提供服務而且正在以驚人的速度增長。它是個讓人驚奇的伺服器,我願意部署它下麵是一個常見安全陷阱和解決方案的列表,它可以輔助來確保你的Nginx部署是安全的。1. 在配置文件中小心使用"if"。它是重寫模塊的一部分,不應該在任何地方使用...


Nginx是當今最流行的Web伺服器之一。
它為世界上7%的web流量提供服務而且正在以驚人的速度增長。它是個讓人驚奇的伺服器,我願意部署它 下麵是一個常見安全陷阱和解決方案的列表,它可以輔助來確保你的Nginx部署是安全的。    1. 在配置文件中小心使用"if"。它是重寫模塊的一部分,不應該在任何地方使用。  “if”聲明是重寫模塊評估指令強制性的部分。換個說法,Nginx的配置一般來說是聲明式的。在有些情況下,由於用戶的需求,他們試圖在一些非重寫指令內使用“if”,這導致我們現在遇到的情況。大多數情況下都能正常工作,但…看上面提到的。  看起來唯一正確的解決方案是在非重寫的指令內完全禁用“if”。這將更改現有的許多配置,所以還沒有完成。  來源: IfIsEvil    2. 將每個~ .php$請求轉遞給PHP。 上周發佈了這個流行指令的潛在安全漏洞介紹。即使文件名為hello.php.jpeg它也會匹配~ .php$這個正則而執行文件。 現在有兩個解決上述問題的好方法。我覺得確保你不輕易執行任意代碼的混合方法很有必要。  1.如果沒找到文件時使用try_files和only(在所有的動態執行情況下都應該註意) 將它轉遞給運行PHP的FCGI進程。  2.確認php.ini文件中cgi.fix_pathinfo設置為0 (cgi.fix_pathinfo=0) 。這樣確保PHP檢查文件全名(當它在文件結尾沒有發現.php它將忽略)   3.修複正則表達式匹配不正確文件的問題。現在正則表達式認為任何文件都包含".php"。在站點後加“if”確保只有正確的文件才能運行。將/location ~ .php$和location ~ ..*/.*.php$都設置為return 403;  3. 禁用autoindex模塊。   這個可能在你使用的Nginx版本中已經更改了,如果沒有的話只需在配置文件的location塊中增加autoindex off;聲明即可。 4. 禁用伺服器上的ssi (伺服器端引用)。這個可以通過在location塊中添加ssi off; 。(腳本學堂 www.jbxue.com) 5. 關閉伺服器標記。如果開啟的話(預設情況下)所有的錯誤頁面都會顯示伺服器的版本和信息。將server_tokens off;聲明添加到Nginx配置文件來解決這個問題。    6. 在配置文件中設置自定義緩存以限制緩衝區溢出攻擊的可能性。
client_body_buffer_size  1K; 
client_header_buffer_size 1k; 
client_max_body_size 1k; 
large_client_header_buffers 2 1k; 
7. 將timeout設低來防止DOS攻擊。所有這些聲明都可以放到主配置文件中。
client_body_timeout   10; 
client_header_timeout 10; 
keepalive_timeout     5 5; 
send_timeout          10; 
8. 限制用戶連接數來預防DOS攻擊。
limit_zone slimits $binary_remote_addr 5m; 
limit_conn slimits 5;  
9. 試著避免使用HTTP認證。HTTP認證預設使用crypt,它的哈希並不安全。如果你要用的話就用MD5(這也不是個好選擇但負載方面比crypt好) 。 10. 保持與最新的Nginx安全更新。 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 網上找了好久沒有找到。。。最後百度到了這句話“由上傳的HttpPostFile的InputStream創建一個Image對象,然後想怎麼處置就隨便你了”。HTML代碼:cs後臺代碼:System.Drawing.Image upimage = System.Drawing.Image.FromStr...
  • 採購商品完成後,下一步要進行入庫操作。為了做到精細化管理,入庫操作主要分以下幾個步驟,採購到貨確認,採購入庫,入庫完成。接下來我們看看這些步驟是怎樣實現的。 1.到貨確認 採購商品到達倉庫後,倉庫收貨人員進行確認收貨操作。倉庫確認收貨完成後,就可以進行入庫操作了 確認到貨後,列印確認到...
  • ZKWeb是一個用於快速開髮網站的框架,主要的特點有 * 支持動態載入和編輯的插件系統 * 使用Ioc容器對各項功能進行擴展 * 支持從代碼自動更新資料庫
  • # -*- coding:utf-8 -*-#conding:utf-8__author__ = 'hdfs''''簡潔 高效 明瞭ElementTree輕量級的 Python 式的 API ,它由一個 C 實現來提供。相對於 DOM 來說,ET 快了很多(見註釋3)而且有很多令人愉悅的 API 可...
  • #conding:utf-8# -*- coding:utf-8 -*-__author__ = 'hdfs'"""XML 解析 :DOM解析珍整個文檔作為一個可遍歷的對象 提交給應用程式,dom解析會將文檔全部load進記憶體,這樣對於大型的xml可能性能不多好。"""import pprintim...
  • #books.xml Python & XML Python & HTML December 2001 Jones, Drake Programming Python, 4th Editio...
  • 最近使用QWebView控制項遇到一個問題,就是無論視窗多大,網頁都顯示那麼大,而且,顯示不完全,有滾動條試過使用showMaximized()方法, 還是一樣,網上一直說是佈局問題,也沒說清楚是蝦米佈局問題,就只能靠自己摸索了。在看代碼的時候,無意中看到view = new QWebView(ui-...
  • DailyRollingFileAppender是日誌記錄軟體包Log4J中的一個Appender,它能夠按一定的頻度滾動日誌記錄文件。如果您不熟悉Log4J,建議閱讀一下使用Log4j進行日誌記錄。我們可以按下麵的方式配置DailyRollingFileAppender:log4j.rootCat...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...