<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址:http://drops.wooyun.org/tips/5796

                    0x00 前言


                    在前一篇文章《基于ngx_lua模塊的waf開發實踐》(鏈接為:http://drops.wooyun.org/tips/5136)中,提出了后續的三個研究方向,其中一個就是在多站點下waf分離的研究,現在將這方面的研究跟大家分享一下。

                    0x01 問題分析


                    最初的思路是直接在nginx中配置多個站點,然后在每個站點中都加載一份waf代碼。

                    流程圖如下:

                    enter image description here

                    這樣做的情況下,如果站點比較多,就會導致nginx配置比較亂,而且當nginx配置多站點的情況下,會出現一些問題。我這里就借用安全寶的一份對比表來說明。

                    enter image description here

                    當然,在實際應用中,一般并不會應用到這么多站點,這里只是做個說明。但是上面說的問題確實是存在的。

                    0x02 需求分析


                    需求1:在nginx中能夠只監聽1個站點,能夠實現所有站點轉發

                    需求2:各個站點可以獨立進行控制,包括waf開發,日志開關以及使用的規則

                    0x03 需求實現


                    針對需求1,流程圖如下:

                    enter image description here

                    nginx.conf關鍵代碼:

                    enter image description here

                    waf.lua關鍵代碼:

                    enter image description here

                    訪問過程分析:

                    當一個用戶訪問到waf服務器時,首先獲取host參數,根據網址配置里查詢到對應的upstream,給預先定義的變量$upstream,從而達到正確轉發的目的。

                    而且后期還可以將網站信息存儲在數據庫,當第一次訪問的時候再加載到內存,達到動態加載的目的。

                    針對需求2:

                    網址配置代碼如下:

                    enter image description here

                    規則配置代碼如下:

                    enter image description here

                    這樣可以給每一個網站單獨配置規則集,并在網址配置里面注明即可。

                    在網址配置里面可以注明每個網站的waf開關,是否記錄日志,以及哪個規則。

                    在規則配置中可以指定規則的放行或阻攔,日志的開啟或關閉。

                    0x04 后續需解決問題


                    0x05 總結


                    此文只是提供一種思路,當然也不是我想出來的,也是參考各種資料,最主要的是針對現在各種大流量大并發的網絡環境下,很多公司包括我們公司有這樣一種需求,所以分享出來,希望和更多的人交流,學習。

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频