web安全——代理(nginx)

来源:http://www.cnblogs.com/ansn001/archive/2016/07/05/5643711.html
-Advertisement-
Play Games

場景 1. 過濾非正常用戶使用的http請求。 2. 限制正常用戶使用的範圍(下載速度、訪問頻率等)。 3. 通過架構規劃來提升安全。 4. 能自動解決http請求問題。 解決方案 代理自身的安全 1. 千萬不要使用root啟動!!! 2. 關閉伺服器的信息。 3. 關閉掉不使用的模塊。 過濾htt ...


場景

  1. 過濾非正常用戶使用的http請求。
  2. 限制正常用戶使用的範圍(下載速度、訪問頻率等)。
  3. 通過架構規劃來提升安全。
  4. 能自動解決http請求問題。

解決方案

代理自身的安全

  1. 千萬不要使用root啟動!!!
  2. 關閉伺服器的信息。server_tokens off;
  3. 關閉掉不使用的模塊。

過濾http

把所有非法的http請求直接拒絕。因為非法的請求往往就是在攻擊伺服器。

過濾非法的http method

# 只允許 get,post,head方式的請求,其他的不安全也沒有用到,不接受
if ($request_method !~ ^(GET|HEAD|POST)$) {
    return 404;
}

過濾非法用戶代理

# 非法代理直接拒絕
# 有一些是爬蟲工具,有一些是搜索外國的搜索引擎,有一些是壓力工具
if ( $http_user_agent ~* "ApacheBench|WebBench|HttpClient|Curl|Wget|^$|AhrefsBot|BLEXBot|^-$|WordPress" ) {
    return 444; 
}

控制http請求尾碼

有一些攻擊都是掃描類似.base_history等。所以除了合法的請求,其他的都拒絕。使用的是白名單的思維方式

# 只接受這些尾碼
location ~ (\.(json|html|jsp)|/)${
    ...
}

控制文件上傳

上傳的文件只有讀的許可權,沒有執行的許可權。訪問webshell的產生。

控制使用

雖然請求是正常的,但是要控制使用服務的資源。

下載限速

針對於靜態資源,特別是大文件,需要限速。

server {
    server_name  xxx.xxx.xxx;
    #控制下載流量
    limit_rate 100k;
}

控制訪問的url的頻率和頻次

在關鍵業務的地方,需要做更細粒度的控制。
比如說一個ip一天只能免費訪問一百次,超過了就禁止訪問。
具體的實現思路:通過lua,redis更精準的控制訪問粒度。

構架規劃

通過構架的規划去增加安全也是很有必要的。

動靜分離

把提供靜態資源和動態資源獨立部署。
更嚴格的控制動態資源的請求類型。
更嚴格的控制靜態資源的許可權。
也解決一定的安全問題。

靜態化

把一旦生成不會變化的動態請求資源,變成靜態的文件。這樣就可以預防很多的安全問題。
具體的實現思路:通過nginx去實現靜態化。

自動解決http請求問題

主要是為了預防ddos和cc。可以自動通過機制去處理。
主要通過定時分析訪問日誌,根據不同的危險等級做不同的處理。難點在於危險等級和危險閥值的設定。
比如:

  1. 低危的限制一段時間即可以繼續使用。通過控制使用里的控制訪問的url的頻率和頻次即可。
  2. 中危的通過nginx直接返回403。可以通過nginx的deny,geo來實現。
  3. 高危的通過防火牆直接拒絕服務。結合防火牆來實現。

驗證方法

  1. postman。可以模擬各種http請求

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • /*************以下源碼通過測試******************************/ package cn.jason.ios.images; import java.awt.FileDialog;import java.awt.Image;import java.io.Fil ...
  • Java最早的名稱叫"oak"後來改名叫"Java". Java最早是屬於"Sun"公司的, 後來被"Oracle"公司收購. 最原始的"oak"是為電視/烤箱/家用電子產品做互動式開發(互動式開發可以理解為"互動式操作", "互動式操作"類似於 現在的"智能家居")的. Java各版本: Java ...
  • 以前在單項目中用過RabbitMQ,沒有問題 不過這次在分散式項目中使用RabbitMQ中有點搞糊塗了,但是實際上是沒有問題的,思路清晰就行 簡單看一下實際操作的示例吧: 資源文件中需要配置基本的rabbitMQ的屬性,如下: 然後要配置applicationContext-rabbitmq.xml ...
  • 一、通用標簽 1.s:property (讀取值棧中對象的屬性值) 屬性:value:指定OGNL表達式;default:OGNL表達式返回為 null 時,使用預設值;escape:是否對 HTML 特殊字元進行轉義 e1:讀取對象棧中對象的屬性值 e2:訪問Map棧,讀取Session域中對象的 ...
  • 代碼一大串! ...
  • 一.設計背景 現實生活中,我們要做一件事情或者完成某項工作,往往有很多種途徑。比如我們出游,可以選擇坐汽車,坐火車,土豪點的選擇是坐飛機。還有我們現線上下的支付方式也有了很多種選擇,以前在外面忘了帶錢的話可能一瓶水都難以買到,現在只要我們手機在身上,可以用微信或者支付寶。 在軟體設計層面,我們把各種 ...
  • 簡介 由於網路技術日趨成熟,黑客們也將註意力從以往對網路伺服器的攻擊逐步轉移到了對web應用的攻擊。據最新調查,信息安全有75%都發生在web應用而非網路層面。 場景 1. 控制訪問的許可權。只讓可以訪問的訪問到最小的資源和許可權。 2. 控制輸入內容。所有輸入都可能是不安全的,所以要過濾。 3. 保證 ...
  • 伏羲八卦、文王六十四卦、老子陰陽太極、西方哲學辯證與"解耦和復用”思想的異曲同工之妙 問題:任何程式語言在遇到複雜邏輯時,代碼維護難度就會加大,如何處理該問題? 答案:重構,模塊化。 重構、模塊化的最終趨向都是"解耦復用"。 問題:那麼如何理解"解耦復用"? 答案: 道可道,非常道;名可名,非常名。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...