0

最近、私のサイトはHTTPリクエストをスパムするボットを持っている人に見舞われています。すべては基本的にランダムなジブリッシュであり、意味のある方法でフィルタリングすることはできません(非常に深刻な作業がなければ)が、私が見つけた矛盾の1つはリファラー文字列。

[22/Sep/2012:03:27:50 +0000] "GET /vb/ HTTP/1.0" 403 345 "1mc9py1amv.net" "Mozilla/3.0 (compatible; NetPositive/2.2)"

ご覧のとおり、それらのrefにはプロトコルがありません。空白の(なしの)リファラーのものがサイトに入ることを許可しながら、プロトコルなしで参照をブロックする方法はありますか?

たとえば、「http」または「https」が含まれている場合や空白の場合は許可されますが、それ以外はすべて拒否されますか?

私は次のようなことを試みました

$HTTP["referer"] !~ "(http://.*|-)" {
    url.access-deny =  ( "" )
}

しかし、それは空白の参照を禁止し、httpsを許可しませんでした。

4

1 に答える 1

2
    $HTTP["referer"] !~ "^($|https://.*|http://.*)" {
            url.access-deny =  ( "" )
    }

これでうまくいきました。似たようなものに遭遇した場合に非常に便利です。

于 2012-09-22T04:11:49.590 に答える