1
1

More than 5 years have passed since last update.

.htaccessによるBasic認証

Posted at

ログインシステムを5分で実装しろ

え、無理ですよ、そんなの
データベースにテーブル作って…
パスワードはハッシュ化して…
フォームやクエリからの攻撃を防いで…

え?今回はごく一部の人が使うシステムだから
セキュリティはガバガバでも良い?

じゃぁ、できます

basic認証とは

Base64という暗号形式を利用したログインシステムで
.htaccessにちょいちょいと記述するだけで完成する。
でもセキュリティは弱い。

どうやって作るの?

まずは.htpasswdというテキストファイルを作成し
その中にユーザーのID:Base64で暗号化されたパスワードという感じに書く。

例えばユーザーIDはtadanohito、パスワードはhimitudesuだったとする。
このユーザーIDとパスワードをBase64で暗号化するとd31esqz2hqswUとなる。
(Base64の暗号化は無料のwebアプリがあるので、それを利用すると良い。)
その場合の記述は

.htpasswd
tadanohito:d31esqz2hqswU

となる。
もしユーザーを増やしたいなら、改行して追記していくだけで良い。

そしたら.htaccessファイルに

.htaccess
AuthUserfile /admin/system/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

と記述する。
それぞれ解説をすると

AuthUserfile
  .htpaccessのあるパスを書く。

AuthGroupfile
  グループファイルのあるパスを書く
  のだが、グループファイルなど作らなくても良いので
  /dev/nullと書けば良い。

AuthName
  認証時に表示する文字列を書く。
  日本語で書くと文字化けする可能性が高いので
  英語で簡単に書くと良い。

AuthType
  認証方法を書く。
  BasicDigestのどちらか選択出来て
  Basicの場合はパスワードをBase64で暗号化
  Digestの場合はパスワードをMD5で暗号化
  しなければならない。

require
  認証を通すユーザー名を書く。
  valid-userと書くと全員が通る。
  user ユーザー名と書くと、そのユーザーしか通らなくなる。

サーバーに2つのファイルをアップロードして完了

プログラミングすることなく、これでログインシステムの完成!
多分カップラーメン茹で上がるより早く完成する。

編集後記

入社5日目
今日から管理システムページを0から作ることになって
そのログインシステムをbasic認証で実装しました。

上司「basic認証で良いよ」
僕「basic認証…?」
上司「ググれ」

となったので、少し調べてみました。
めちゃ簡単でした。  

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1