2016-02-03 24 views
0

我在Linux 6.6上通過Apache 2.4.18配置了SVN。接下來,我必須爲我的svn url禁用跨幀腳本。 SVN網址就像https://servername/svn/projectA。我已經編譯mod_security2.so並複製到/ modules目錄下,然後在virtualHost中加載下面的行。如何在Apache中爲svn屏蔽跨幀腳本

LoadFile /usr/lib64/libxml2.so 
LoadFile /usr/lib64/liblua-5.1.so 
LoadModule security2_module modules/mod_security2.so 

    httpd-vhosts.conf 
    <VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/var/local/apache/httpd2.4.18/htdocs" 
    ServerName servername.fqdn.com 
    # For http to https redirect  
    Redirect/https://servername 
    TraceEnable off 
    RewriteEngine on 
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) 
    RewriteRule .* - [F] 
    SecRuleEngine On 
    #SecFilterEngine On 
    #SecFilterForceByteRange 32 126 
    #SecFilterScanPOST On 
    #SecFilter "<(|\n)*script" 
    SecRequestBodyAccess On 
    SecResponseBodyAccess On 
    ErrorLog "logs/error_log" 
    CustomLog "logs/access_log" common 
</VirtualHost> 

,不是支持的Apache的規則

SecFilterEngine SecFilterForceByteRange SecFilterScanPOST 所以SecFilter 大段引用

相反SecFilterEngine的,其採取SecRuleEngine。但我不知道其他規則的替代規則。我正在使用modsecurity-2.9.0源碼編譯。我看到的錯誤在下面。 [root @ server extra]#/var/local/apache/httpd2.4.18/bin/apachectl configtest AH00526:/var/local/apache/httpd2.4.18/conf/extra/httpd-vhosts第45行的語法錯誤。 conf: 命令'SecFilterForceByteRange'無效,可能是拼寫錯誤或由未包含在服務器配置中的模塊定義的。任何人都知道SecFilterForceByteRange,SecFilterScanPOST和SecFilter支持的mod_security2模塊。我還閱讀了有關mod_security的文檔,但無法弄清楚並解決問題。我跟着下面的網址。

http://www.unixpearls.com/how-to-block-xss-vulnerability-cross-site-scripting-in-apache-2-2-x/

[編輯] 其通過將標頭響應解決。

+1

你可以完成這個只配置mod_headers https://www.namhuy.net/3154/secure-apache-http-web-server.html –

+0

@Jaoao - 在響應標題中,我看到X-Frame-Options爲SAMEORIGIN。這是正確的嗎?你知道在apache命令行中測試這個功能的選項嗎?我認爲你解決了這個問題。 – arunp

+1

看看這個幫助https://www.owasp.org/index.php/Testing_for_Clickjacking_(OTG-CLIENT-009) –

回答

0

所有這些不支持的命令都是ModSecurity v1命令,並且已經爲ModSecurity2完全重寫。

你想會是這樣的規則:

SecRule ARGS "<(|\n)*script" "phase:2,id:1234,deny" 

這基本上會掃描你的任何參數(如參數或身體)的條目是這樣的:

<script 

< script 

< 
script 

這不是一個糟糕的開始嘗試保護XSS,但有點基本。

OWASP有一個核心規則集的ModSecurity規則及其XSS規則要複雜的多,可以在這裏看到:https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/master/base_rules/modsecurity_crs_41_xss_attacks.conf

XSS可以在許多方面,其中一些將使其被利用您的服務器(以及這種事情可能會被捕獲)以及一些甚至可能根本無法將其傳送到服務器(以及無法防範的情況)。

防止XSS的最佳方法是查看內容安全策略,該策略允許您明確地說出您希望在您的網站上允許使用哪種JavaScript,以及哪些不是,並且如果您想要顯式拒絕內嵌腳本。這可能需要對網站進行一些清理以刪除內聯腳本,而且並不總是最容易設置的,特別是在您的站點上加載第三方資產和小部件時,尤其是最強大的保護。

X-Frame-Options標題對於阻止您的站點被框住是有用的,並且有人覆蓋內容使您認爲您點擊了真實站點按鈕和字段,但實際上單擊了它們的按鈕。這不是真正的XSS形式,因爲您更傾向於將腳本置於站點頂部的隱形窗口中,而不是直接放置在您的網站上,但可以產生類似的效果。這是一個很好的頭文件。