国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Apachemod_rewrite分析及其在網(wǎng)站安全中的應用

2016-03-22 13:39:20陳昀孟潔
電腦知識與技術 2016年2期

陳昀 孟潔

摘要:該文介紹了開源免費的Apache網(wǎng)站服務器軟件及mod_rewrite重寫模塊,通過分析模塊規(guī)則將其應用到網(wǎng)站安全中。

關鍵詞:Apache;mod_rewrite;網(wǎng)站安全

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)02-0021-02

Apache以其穩(wěn)定性、高可擴展性,在互聯(lián)網(wǎng)網(wǎng)站服務器領域贏得絕對第一的市場占有率?;ヂ?lián)網(wǎng)中大部分網(wǎng)站采用Apache作為其后臺服務程序,而網(wǎng)絡上針對采用Apache提供服務支持網(wǎng)站的攻擊也是非常頻繁。隨著網(wǎng)站應用系統(tǒng)不斷地建設及陸續(xù)投入運行,這些網(wǎng)站應用程序本身所帶來的安全漏洞也越來越多。目前基于網(wǎng)站的各種應用直接承載有各類虛擬資產(chǎn),而這類虛擬資產(chǎn)可以方便的轉(zhuǎn)換為現(xiàn)實經(jīng)濟價值。很顯然,此類網(wǎng)站應用系統(tǒng)將會成為以經(jīng)濟利益為驅(qū)動的攻擊首選。

針對網(wǎng)站應用層的攻擊,如SQL注入攻擊、XSS跨站腳本攻擊、惡意代碼等是傳統(tǒng)網(wǎng)絡安全產(chǎn)品如防火墻、IDS/IPS設備所不能防御的。但這些針對網(wǎng)站的攻擊必須經(jīng)過網(wǎng)站服務器程序,故在Apache網(wǎng)站服務器程序?qū)用鎸暨M行防御,將非常有效的降低網(wǎng)站應用本身所帶來的安全隱患。對于采用Apache的網(wǎng)站來說,借助于mod_rewrite模塊實施安全策略,將大大提高網(wǎng)站的安全性。

1 Apache簡介

互聯(lián)網(wǎng)領域中的Apache指的是Apache網(wǎng)站服務器軟件,被廣泛應用于互聯(lián)網(wǎng)網(wǎng)站服務器中。其前身為美國國家計算機安全協(xié)會開發(fā)的網(wǎng)站服務器軟件,Apache項目開始于1995年,之后其開始取代原網(wǎng)站服務器軟件的市場,并于1996年4月開始一直維持其霸主地位。到2015年初有近3.5億的網(wǎng)站使用的是Apache作為其服務器后臺為網(wǎng)站提供服務。

Apache由Apache軟件基金會開發(fā)和維護,主要用于但不限于類Unix系統(tǒng)。各種操作系統(tǒng)環(huán)境中都可以見到Apache的身影,包括Unix、FreeBSD、Linux、Solari、Novell NetWare、OS X、Windows和OpenVMS。Apache采用Apache授權協(xié)議,保障其采用源代碼的方式發(fā)布。Apache項目的目標就是提供一個安全、有效和可擴展的網(wǎng)站服務器軟件。其開發(fā)進度維持與HTTP標準的同步。

2 mod_rewrite模塊分析

Apache的擴展是通過加載功能模塊來實現(xiàn)的,mod_rewrite為一個基于規(guī)則的URL重寫模塊。該模塊采用基于規(guī)則的正則表達式引擎,對網(wǎng)站訪問請求中的URL進行實時的重寫。模塊支持無限數(shù)量的規(guī)則和無限數(shù)量的條件判斷,條件判斷的范圍非常廣,可以是服務器變量、環(huán)境變量、HTTP頭、時間戳等,甚至可以是對外部數(shù)據(jù)庫查詢的結果。

mod_rewrite模塊對整個URL進行操作,可用于生成URL查詢串、可指向內(nèi)部處理進程、外部URL重定向或者內(nèi)部代理。mod_rewrite模塊的特性如下:

1) 強大的PCRE正則表達式分析引擎;

2) 無限的規(guī)則數(shù);

3) 每個規(guī)則中無限的條件判斷。

mod_rewrite模塊功能非常強大,因此也可以設置的非常復雜。除了基本的URL重寫功能外,mod_rewrite模塊還能實現(xiàn)如下高級功能:

1) 訪問控制;

2) 動態(tài)虛擬主機;

3) 動態(tài)代理;

4) 負載均衡;

5) 基于時間的URL重寫;

6) URL重新定向和重新映射。

通過mod_rewrite模塊的訪問控制功能,可在Apache網(wǎng)站服務器層面對HTTP請求方法、客戶端請求、Referrer、Cookies和查詢字符串方面對網(wǎng)站安全進行強化。

3 mod_rewrite強化網(wǎng)站安全

新版本中的Apache默認都已加載mod_rewrite模塊,只需確認Apache主配置文件httpd.conf中有該模塊的加載語句即可:LoadModule rewrite_module modules/mod_rewrite.so。

3.1 過濾HTTP方法

目前的HTTP協(xié)議定義了GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE 、CONNECT和PATCH方法,每個方法都有具體的應用場合,但作為一個常規(guī)網(wǎng)站來說,用到的方法只有GET和POST。通過mode_rewrite模塊可以對不使用的方法進行排除,以降低網(wǎng)站遭受攻擊的可能性。限定非GET和POST方法的規(guī)則指令如下:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} ^(head|options|put|delete|trace|connect|patch) [NC]

RewriteRule ^(.*)$ - [F,L]

3.2審查客戶端請求

客戶端向網(wǎng)站服務器端發(fā)送的請求包含HTTP方法、URI和傳輸協(xié)議版本。通過mod_rewrite審查客戶端請求中的非法字符串,降低網(wǎng)站遭遇HTTP回應拆分、XSS跨站腳本攻擊、緩存毒化等攻擊的風險。對客戶端請求及請求中的URI進行審查的規(guī)則指令如下:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^.*(\\r|\\n|%0A|%0D).* [NC,OR]

RewriteCond %{REQUEST_URI} ^.*(,|;|:|<|>|”>|”<|/|\\\.\.\\).* [NC,OR]

RewriteCond %{REQUEST_URI} ^.*(\=|\@|\[|\]|\^|\`|\{|\}|\~).* [NC,OR]

RewriteCond %{REQUEST_URI} ^.*(\|%27|%3C|%3E|%00).* [NC]

RewriteRule ^(.*)$ - [F,L]

3.3限定Referrer

HTTP協(xié)議中的Referrer用于追溯一個網(wǎng)頁訪問的來源。因其在互聯(lián)網(wǎng)的SEO領域有一定分值,故常被惡意使用。使用mod_rewrite模塊的HTTP_REFERER變量,可以對惡意Referrer進行限定:

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^(.*)(<|>||%0A|%0D|%27|%3C|%3E|%00).* [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?adult(-|.).*$ [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?sex(-|.).*$ [NC]

RewriteRule ^(.*)$ - [F,L]

3.4排查Cookies

Cookies是網(wǎng)站服務端存儲在客戶端一些數(shù)據(jù),往往以文件方式存在在客戶端計算機中。網(wǎng)站使用Cookies技術追蹤用戶信息,如登錄狀態(tài)、登錄時間、個人偏好、購物車信息等。但Cookies也被攻擊者利用來對網(wǎng)站進行Cookie毒化、XSS跨站腳本攻擊和跨站Cookie攻擊等。使用mod_rewrite模塊的HTTP_COOKIE變量,可以對惡意Cookie進行排查:

RewriteEngine On

RewriteCond %{HTTP_COOKIE} ^.*(<|>||%0A|%0D|%27|%3C|%3E|%00).* [NC]

RewriteRule ^(.*)$ - [F,L]

3.5過濾查詢字符串

URL中的查詢字符串用于與服務器端腳本和數(shù)據(jù)庫進行交互,攻擊者通過在其中加入惡意字符和攻擊代碼來實現(xiàn)對網(wǎng)站的攻擊。使用mod_rewrite模塊的QUERY _STRING變量,對查詢字符串的合法性和內(nèi)容進行檢查,對于包含惡意字符和攻擊代碼的請求進行拒絕。相關指令如下:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR]

RewriteCond %{QUERY_STRING} \

^.*(\.|\*|;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00).* [NC,OR]

RewriteCond %{QUERY_STRING} \

^.*(md5|benchmark|union|select|insert|cast|set|declare|drop|update).* [NC]

RewriteRule ^(.*)$ - [F,L]

4 結論

通過Apache mod_rewrite模塊的訪問控制功能,可在Apache網(wǎng)站服務器層面對HTTP請求方法、客戶端請求、Referrer、Cookies和查詢字符串方面對網(wǎng)站安全進行強化。規(guī)則變量REQUEST_METHOD、THE_REQUEST、REQUEST_URI、HTTP_REFERER、HTTP_COOKIE和QUERY_STRING可單獨使用,也可結合應用在復雜的網(wǎng)站服務器環(huán)境中,借助于mode_rewrite模塊進行實施,可以有效提高網(wǎng)站的安全性。

參考文獻:

[1] Apache Software Fundation, Apache Module mod_rewrite [EB/OL]. http://httpd.apache.org/docs/2.4/en/mod/mod_rewrite.html, 2015-01-01/2015-03-17

[2] February 2015 Web Server Survey [EB/OL]. http://news.netcraft.com/archives/2015/02/24/february-2015-web-server-survey.html, 2015-02-24/2015-03-17

[3] Jeff Starr, Eight Ways to Blacklist with Apaches mod_rewrite [EB/OL]. http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/, 2009-02-03/2015-03-17

大城县| 五莲县| 兴宁市| 锦州市| 安化县| 阿荣旗| 福清市| 兴海县| 西乌珠穆沁旗| 化州市| 丘北县| 舟山市| 丽水市| 沧州市| 金塔县| 三台县| 宁国市| 镇沅| 新建县| 佛学| 陆良县| 永吉县| 田阳县| 漳浦县| 丽水市| 成安县| 彭阳县| 阳东县| 正镶白旗| 恭城| 治县。| 曲沃县| 梓潼县| 高阳县| 柘荣县| 鹤壁市| 三原县| 古交市| 沙湾县| 合作市| 陇西县|