0

Linux 6.6 で Apache 2.4.18 を介して SVN を構成しました。次に、svn URL のクロス フレーム スクリプティングを無効にする必要があります。SVN URL はhttps://servername/svn/projectAのようなものです。mod_security2.so をコンパイルし、/modules ディレクトリにコピーしてロードし、virtualHost に次の行を追加しました。

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@domain.com
    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 Blockquote

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.conf の 45 行目の構文エラー: 無効なコマンド 'SecFilterForceByteRange' です。スペルが間違っているか、サーバー構成に含まれていないモジュールによって定義されている可能性があります。mod_security2 が SecFilterForceByteRange、SecFilterScanPOST、および SecFilter でサポートするモジュールを知っている人は誰でも知っています。mod_security に関するドキュメントも読みましたが、問題を把握して解決することはできませんでした。以下のURLをたどりました。

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

[編集]ヘッダー応答を追加することで解決しました。

4

1 に答える 1

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 と禁止する JavaScript を明示的に指定し、必要に応じてインライン スクリプトを明示的に拒否できます。これには、インライン スクリプトを削除するためにサイトのクリーンアップが必要になる場合があり、特にサード パーティのアセットやウィジェットをサイトにロードする場合は、設定が必ずしも簡単ではありませんが、最も堅牢な保護です。

X-Frame-Options ヘッダーは、サイトがフレーム化されたり、実際のサイトのボタンやフィールドをクリックしているように思わせるためにコンテンツをオーバーレイするのを防ぐのに役立ちますが、実際にはそれらのボタンをクリックします。サイトに直接ではなく、サイトの上にある目に見えないウィンドウにスクリプトを配置しているため、実際には XSS の形式ではありませんが、同様の効果が得られます。よく使うヘッダーです。

于 2016-02-04T19:09:46.530 に答える