.htaccessが効かない??

このQ&Aのポイント
  • メール収集ソフトや、短い時間に何度もアクセスする迷惑なIPを、CGIを用いて自動で.htaccessに制限を行っているのですが、効果がないようです。
  • .htaccessは信頼していましたが、特定のIPからのアクセスが頻繁にあり困っています。
  • どのようにすれば効果的にアクセス制限を行うことができるでしょうか?
回答を見る
  • ベストアンサー

.htaccessが効かない??

メール収集ソフトや、短い時間に何度もアクセスする迷惑なIPを、CGIを用いて自動で.htaccessに書き込み、制限を行っているのですが、あるIPからのアクセスのみ、下記のように書き込んだのでは効果がありませんでした。 因みに、自身のIPを書き込んでテストしたところ確実にはじかれました。 .htaccessはかなり信用していたのですが何度もページにアクセスされているようで困っています。 どのようにすれば防げるでしょうか? どなたか、ご存知の方、宜しくお願い致します。 Order allow,deny Allow from all Deny from 61.192.XXX.XX 注:Xには数字が入っています。一応、伏せています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>.htaccessは604 で書き換え可能と言うことはSUEXECですね まずパーミッションから行くと .cgi = 700 .cgiで読み込んで表示するfile= 600 ブラウザで直接アクセスされるfile= 604 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2119462 >単にメールアドレス収集ソフトあたりが訪れている >$ENV{'REMOTE_ADDR'};で取得した 表示をCGIで行っているのでしたら.htaccessに頼らずどこかにfileを作って拒否したいアドレスをリストアップするようにしてcgiの中でそれを読み込んで$ENV{'REMOTE_ADDR'}と一致したらエラー処理すればいいのでは? それとか他の環境変数例えば$ENV{'HTTP_USER_AGENT'}辺りで振り分けるとか? 一時的にHTTPとREMOTEで始まる全ての環境変数をログに残して 次からCGIで拒否するか .htaccessのSetEnvIfで制限するなど http://oshiete1.goo.ne.jp/kotaeru.php3?q=2056373 http://httpd.apache.org/docs/2.0/ja/mod/mod_setenvif.html#setenvif まあ、#1にも書いたけど頭にHTTPの付く環境変数は簡単に偽装可能なのでロボットがMSIE等を装えば意味無しですが

ayu_mi_nic
質問者

お礼

あ!なるほど、その手がありましたね! いつも、htaccessばかり使っていたため、思いつきませんでした。 ありがとうございます!!

その他の回答 (1)

回答No.1

まず、アクセスしたクライアントのIPアドレスはどうやって取得していますか? Apacheのアクセスログでしょうか? CGI中で記録しているのでしょうか? 1.・Apacheのログで記録されたIPアドレスとDeny fromで指定したアドレスが一致していて、他のアドレスでは403になるのに効かないと言う場合は、私の想像の範囲内では Apacheのログを改ざんされた。または .htaccessを改ざんしてアクセス、その後.htaccessを元に戻す。 位しか思い浮かびません  (CGIによって.htaccessを書き換えているとの事ですが  SUEXEC + .htaccessのパーミッションが604ならまだしも  .htaccessを606や707にするのは危険です  他のユーザーのCGIからも書き換え可能だからです  少なくとも私なら絶対やりません ) 2.・CGIによってアドレスを記録している場合は IPアドレスを偽装したり、欺く手段はもっと多いです 例えば同一サーバー内にセキュリティの甘いCGIがあれば、それを踏み台にしてあなたのCGIにアクセスするとか、あなたのCGIを介さずにログに直接書き込むとか? 或いは典型的に駄目なCGIの例として'HTTP_X_FORWARDED_FOR'が存在する場合は'REMOTE_ADDR'の代わりにそちらを記録してしまうCGIとか?   その場合はDeny fromで指定したアドレスと一致するはずも有りませんし  そもそも頭にHTTPの付く環境変数の偽装などCGIやサーバーの初心者でも行える程度の物で  上に挙げたような同一サーバー内の踏み台もアカウントも必要有りません

ayu_mi_nic
質問者

お礼

回答いただきありがとうございます。 .htaccessは604にしています。 また、IPアドレスの取得についてですが、こちらは、$ENV{'REMOTE_ADDR'}; で取得したものを使っています。 ホームページに関してですが、作って間もないため、嫌がらせというよりは単にメールアドレス収集ソフトあたりが訪れているような気がします。 CGIで本当のIPを取得することはできないものでしょうか? もし、ご存知でしたら、教えてください。 宜しくお願い致します。

関連するQ&A

  • htaccess??

    .htaccessを設置したいのですが、.htaccessではいろいろな条件を拒否したり許可したりできますよね? たとえば、指定したホストからのアクセスを拒否したい、と同時に画像の直リンクを防ぎたい。という場合、どう表記すればいいのでしょうか? order allow,deny deny from all deny from xxxxx(拒否したいホスト) deny from xxxxx SetEnvIf REFERER "xxxxx(自サイトのURL )" Ref1↓ Order Deny,Allow↓ Deny from all↓ Allow from env=Ref1↓ AddHandler cgi-script htaccess とこんな感じでつらつらと並べていいものでしょうか? 初歩的な質問でごめんなさい。 良かったら教えてください。

  • .htaccessで

    アクセス制限をしようと思ってます。 AuthUserFile /dev/null AuthGroupFile /dev/null AuthType Basic <Limit GET> order deny,allow deny from all allow from ●●● </Limit> ●●●のところにIPを入れれば ●●●のみアクセス可能 ということになるのでしょうか? それと「.htaccess」の 読み方も教えてください・・・。 エイチティアクセス? よろしくお願いいたします。

  • .htaccess の書き方について教えてください。

    こんにちは、質問させてください。 webサイトを運営しており、.htaccessによるアクセス規制を検討しています。 下記のように複数のアクセス規制をしたい場合、どのように書けば良いでしょうか? ○特定IPアドレスからのアクセス ○プロキシ経由でのアクセス ○特定URLからのアクセス 過去ログ等を検索してみて、現在、以下のようなソースにしています。 ------------------------------------- #特定IPとプロキシ経由の拒否 order allow,deny allow from all deny from ***.***.**.*** order deny,allow deny from all allow from .jp allow from .net allow from .com #特定アドレスからのアクセス拒否 SetEnvIf Referer "http://sample.url.com" ref01 order Allow,Deny Allow from all Deny from env=ref01 ------------------------------------- プロキシ経由の場合、すべてを弾くのは難しいと思いますが… 何か他に良い書き方がありましたら、アドバイスをお願いします。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • .htaccessでのアクセス制限<wakwak

    こんにちは。 wakwakでHPを作成しています。 実はトラブルがあり、アクセス制限をしたいのですが、 パスワードを入れるタイプではなく、 ある特定のIPの人だけを制限したいと思い、 .htaccessファイルの中に <Limit GET POST PUT> order allow,deny allow from all deny from xxx.xxx.xx. </Limit> (xxxはきちんと指定しています) と記述して転送しようとしたのですが Permission denied on server(Filename(deny)) と出て転送できません。 これはつまりwakwakでは拒否できないように してあるのでしょうか。 週明けにサーバー管理者に質問すればいいんですが できれば早いうちに制限をしたいと思っています。 (しかもそういう制限をしたことを知られたくないため レンタルアクセス制限などバナーが出るものは 避けたいと思っています) denyが使えないとしてCGIを使うタイプとか パスワードを指定しない形で 特定のIPをアクセス制限する方法はあるのでしょうか。 よろしくお願いします。

  • htaccess で特定IP以外をリダイレクト

    特定IPの以外のアクセスは指定URLへリダイレクトさせたいのですが、うまく行きません。 ↓のように.htaccessに記述しているのですが間違っているんでしょうか? ------------------------------------------- order allow,deny allow from XXX.XXX.XXX.XXX deny from all ErrorDocument 403 http://yahoo.co.jp ------------------------------------------- 「XXX.XXX.XXX.XXX」のIPは自分のIPを記述しているので、yahooにリダイレクトされないのが正しい動作なのですがyahooへリダイレクトされてしまいます。 お詳しい方がおられましたらご回答宜しくお願い致します。

  • .htaccessで複数設定するには?

    .htaccessを使って「特定のIPアドレス・ホストからのアクセスを拒否」と 「特定のリンクからのアクセスを拒否 」の2つを一緒に設定したいのですが、 どうすればいいのでしょうか? 単独での書き方はそれぞれ調べて分かったのですが、1つにまとめての記述方法が分かりません。 --------------------------------------------------- order allow,deny allow from all deny from ●● deny from ○○ deny from ▲▲ deny from △△ SetEnvIf REFERER "http://○○○.com/" Ref1 Order Allow,Deny Allow from all Deny from env=Ref --------------------------------------------------- といった感じに記述したものの、全く動作してくれません。 ご存知の方いらっしゃいましたら、宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessの使い方について教えてください!

    こんにちは。私はHPを運営しているんですが、最近荒らしにあってしまい悩んでます。.htaccessというものを最近知ったのでそれを使ってみようと言うことになりました。それで、その荒らしのIPを弾くには # アクセス制限 order allow,deny allow from all deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否 deny from .bbb.co.jp # ???.bbb.co.jp を拒否 deny from .go.jp # 当局によるアクセスを拒否 deny from 130.90. # 130.90.???.??? を拒否 こういう風に書けばいいんだなと分かりましたが、その荒らしというのが、2ちゃんねるにHPアドレスを貼り付けたりして厄介な奴なんです。そこで、2ちゃんねるのアドレスを弾くって言うことも出来ますでしょうか? # アクセス制限 order allow,deny allow from all deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否 deny from .bbb.co.jp # ???.bbb.co.jp を拒否 deny from .go.jp # 当局によるアクセスを拒否 deny from 130.90. # 130.90.???.??? を拒否 ※deny from http://●●/ ↑の※のように一緒にこうやって書くのかなって思ったんですけど、どこにもそう言う書き方が載ってないのであっているかどうか教えてください。あってなかったら正しい書き方を教えてください。よろしくお願いしますm(_ _)m

  • htaccessでoreder allow,denyとRewriteEngine onは同時に使える?

    .htaccessを使用して特定IP(***.xxx.xxx.xxx)からのアクセス制限と同時に特定IP(yyy.yyy.yyy.***)の場合は別サイトへ転送するのを同時にやりたいです。 独立して.htaccessに記述すると動作しましたが、2つとも記述すると動作しませんでした。 order allow,deny allow from all deny from ***.xxx.xxx.xxx RewriteEngine on RewriteBase / RewriteRule .* http://zz*.com/

  • .htaccessで弾けない

    悪意のある特定のIPからのアクセスを別サイトに飛ばすため、 下記のように.htaccessファイルに記述しています。 <Limit GET POST PUT> order allow,deny allow from all deny from 特定のIP </Limit> ErrorDocument 403 http://www.yahoo.co.jp/ ところが、.htaccessファイルを設置しても、アクセス解析を見ると 相手のIPからのアクセスが残っています。 .htaccessで弾かれずに、普通に閲覧できているようです。 試しに自分のIPを記述してみたところ、確かにhttp://www.yahoo.co.jp/に 飛ぶので、.htaccessは機能しているはずなのですが、なぜだかわかりません。 対処法をご存知の方がいらっしゃったらご教示ください。 宜しくお願いします。

  • ロボットを.htaccessで排除したい。

    ロボットが回遊してきてcgiを実行され、被害が出るので、 .htaccessでアクセス制限を掛けたく調べています。 .htaccessファイルは以下のとおり作れました。 ***ここから order allow,deny allow from all deny from xxx.xxx.xxx.xxx ***ここまで ただ、このファイルを置く場所が分かりません。 プロバイダーの指定では、 /use/local/www/htdocs/user-id/public_html/目的のディレクトリ と在ります。 これは、.htaccessファイルをここに置け、ということかと思いますが、 ここはどのように指定するのでしょうか。 使っているのは、フリーウェアのffftpです。 ffftpを実行したとき、 サーバー側に表示されているアドレスは / となっています。 そしてそこに、cgi-binフォルダやindex.htmlが表示されています。 .htaccessの説明を読んだ限りでは、 制限を掛けたいフォルダ(ディレクトリ)に置け、となっていました。 であれば、このルート部分に置きたいのですが。 関連でもう一つ、やらなければならないことはこれだけで宜しいのでしょうか。 例えばcgiファイルなどで何か定義し直す必要とか。 宜しくお願いします。

    • ベストアンサー
    • Perl