.htaccessについて質問です。


アクセス制限(Basic認証)を設定したのですが

これはどれ程のセキュリティを持つものなのでしょうか?

その気になればすぐサーバーにアクセスしてファイルや最悪DBに入り込んで内容を変更したり削除したり出来るレベルでしょうか?

セキュリティに強度を持たせるには他にはどのような対処方法があるでしょうか?

現在Basic認証を以下ページを参考に付けてみたのですが、

http://www.shtml.jp/htaccess/basic.html

指定したファイルやフォルダだけにはセキュリティをかけず,
誰でもアクセスできるように.htaccessを編集することは出来るでしょうか?

お手数をおかけしますがよろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/08/11 22:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ymlab No.4

回答回数508ベストアンサー獲得回数34

ポイント22pt

Basic 認証は、

http://ja.wikipedia.org/wiki/Basic認証

にかかれているとおり、解読が容易な認証です。

具体的にはDES暗号という方式で、暗号化されています。

DES暗号は、私は

http://server4.int-univ.com/sugsi/Lecture/DES/e2/e2.html

で勉強しました。

DESの攻撃方法なのですが、

http://server4.int-univ.com/sugsi/Lecture/DES/e4/e43.html

にやり方がかいています。

従って、安全な認証とは言えません。

http://ja.wikipedia.org/wiki/Digest認証

など、Digest認証を行う方法が一つあげられます。

しかしながら、重要なものをWebサイトに載せる場合、サーバまかせにせず、

https のプロトコルで、独自に認証システムを行う等の対応も考えた方がよいでしょう。

例えば、[認証の後で、カードに任意の数字を複数並べておき、サーバにはその都度かわる数字を表示し、その数字に対応する数字をカードから計算してもらって入力してもらう等]

です。

ただ、Basic認証でも、特に簡単なパスワードにしなかったり、大規模なアクセスがあるサイトでないかぎり、まず大丈夫かとは思います。

私も数年前から、自宅サーバを公開しています。.htaccessのbasic認証で、相当数のアタックが着ますが、[というか、それ以外のsshによるアクセスを試みようとする方が多いです。]

破られた痕跡は今のところありません。

id:aiomock

ご回答ありがとうございます。

実際のケースが書いてあり非常に参考になります。

2009/08/04 23:33:59

その他の回答3件)

id:koujirou6218 No.1

回答回数597ベストアンサー獲得回数47

ポイント23pt

まず同類の質問がありましたので記載しておきます。

http://q.hatena.ne.jp/1173955201

その気になればすぐサーバーにアクセスしてファイルや最悪DBに入り込んで内容を変更したり削除したり出来るレベルでしょうか?

それはできません。フォルダー(ディレクトリ)単位でアクセス制限をかけるための”基本”認証なのでサーバやプログラムの脆弱性を突かれないか、IDとPASSが同一の物を使用していたなどのケアレスミスがないと不可能です。


セキュリティに強度を持たせるには他にはどのような対処方法があるでしょうか?

リンク先の質問にもありますが、BASIC認証などの場合は容易に盗聴可能です。

LAN内にいれば、プロトコルアナライザーなどを用いて盗聴できてしまいます。

BASIC認証は、セキュリティ面というよりも簡易的にアクセス制限を実施したい場合に利用します。

ですので、BASIC認証に関してはないよりマシ程度にとらえてください。



指定したファイルやフォルダだけにはセキュリティをかけず,

誰でもアクセスできるように.htaccessを編集することは出来るでしょうか?

HTMLだけのような静的なコンテンツのみの場合は、サーバに対するインシデントは発生しません。

しかしCGIやPHPを利用した場合はプログラムの脆弱性を突かれたり、権限設定のミスがあった場合などは任意のプログラムを動作させることが可能になります。

事実上サーバを乗っ取ることが可能になります。


セキュリティといっても様々であり、aiomockさんの環境が不明ですのでなんともいえませんが、レンタルサーバであればサーバ側のセキュリティは任せるしかありません。

しかし、設置したプログラムに関しては利用者の責任になるので、セキュアなコーディング知識と技術が必要なります。

id:aiomock

ご回答ありがとうございます。

2009/08/04 23:26:15
id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント23pt

BASIC認証そのものは、比較的安全です。


経験上、BASIC認証が破られるのは、下記のようなケースです。

  1. .htaccessファイルのあるディレクトリを、PHPやCGIなどの外部プログラムからアクセスできるようになっている。
  2. FTPやSSHにバックドアがあり、.htaccessファイルを改竄できる可能性がある。
  3. その他、BASIC認証のパスワードや.htaccessファイルにアクセスするためのパスワードを、サイトのどこかにファイルとして置いている。
id:aiomock

ご回答ありがとうございます。

2009/08/04 23:26:23
id:asahiru No.3

回答回数101ベストアンサー獲得回数0

ポイント22pt

>これはどれ程のセキュリティを持つものなのでしょうか?

BASIC認証は、ID/PASSWORDが平文(暗号なし)でするため、ネットワークを盗聴されると

ID/PASSWORDがわかってしまいます。

また、総当りでID/PASSWORDをランダムに試して進入する方法もあります。

id:aiomock

ご回答ありがとうございます。

2009/08/04 23:26:48
id:ymlab No.4

回答回数508ベストアンサー獲得回数34ここでベストアンサー

ポイント22pt

Basic 認証は、

http://ja.wikipedia.org/wiki/Basic認証

にかかれているとおり、解読が容易な認証です。

具体的にはDES暗号という方式で、暗号化されています。

DES暗号は、私は

http://server4.int-univ.com/sugsi/Lecture/DES/e2/e2.html

で勉強しました。

DESの攻撃方法なのですが、

http://server4.int-univ.com/sugsi/Lecture/DES/e4/e43.html

にやり方がかいています。

従って、安全な認証とは言えません。

http://ja.wikipedia.org/wiki/Digest認証

など、Digest認証を行う方法が一つあげられます。

しかしながら、重要なものをWebサイトに載せる場合、サーバまかせにせず、

https のプロトコルで、独自に認証システムを行う等の対応も考えた方がよいでしょう。

例えば、[認証の後で、カードに任意の数字を複数並べておき、サーバにはその都度かわる数字を表示し、その数字に対応する数字をカードから計算してもらって入力してもらう等]

です。

ただ、Basic認証でも、特に簡単なパスワードにしなかったり、大規模なアクセスがあるサイトでないかぎり、まず大丈夫かとは思います。

私も数年前から、自宅サーバを公開しています。.htaccessのbasic認証で、相当数のアタックが着ますが、[というか、それ以外のsshによるアクセスを試みようとする方が多いです。]

破られた痕跡は今のところありません。

id:aiomock

ご回答ありがとうございます。

実際のケースが書いてあり非常に参考になります。

2009/08/04 23:33:59
  • id:b-wind
    > BASIC認証そのものは、比較的安全です。
    > 経験上、BASIC認証が破られるのは、下記のようなケースです。
    経路上の通信の傍受であっさり破られるでしょう?他の認証形式と間違えていませんか?
  • id:pahoo
    #2の回答について、通信路の盗聴のことを失念していました。訂正します。
    koujirou6218さん、asahiruさん、ymlabさん、b-windさんが記されているように、盗聴に対しては無防備です。

    >b-windさん
    ご指摘ありがとうございます。
  • id:http4799
    Basic認証は、パスワードをアタックするツールが存在します。
    盗聴されなくても、ブルートフォースアタック(総当たり攻撃)で破られることもあります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません
${title} {{if price }}
${price}円
{{/if}}