特定の URL のみ Basic 認証をかける・除外する (Apache 2.2)
Apache 2.2 を使用している Web サーバで、 .htaccess のみを使い特定の URL のみ Basic 認証を外す必要があり調べた。
特定の URL のみ Basic 認証をかける
## Allow と Require のいずれかの許可があればアクセス可能にする Satisfy Any ## /members/ で始まる URL へのアクセスを禁止する SetEnvIf REQUEST_URI "^/members/" restricted_url Order allow,deny Allow from all Deny from env=restricted_url ## /members/ 以下でも Basic 認証を通過すればアクセスできる AuthUserFile "/path/to/.htpasswd" AuthGroupFile /dev/null AuthName "Restricted Files" AuthType Basic require valid-user
ここで SetEnvIf に指定している "^/members/"
の部分は正規表現で記述する。単に "/members/"
と記述すると /sub/members/directory にもマッチするので注意。
特定の URL のみ Basic 認証を除外する
## Allow と Require のいずれかの許可があればアクセス可能にする Satisfy Any ## /images/ で始まる URL へのアクセスを常に許可する SetEnvIf REQUEST_URI "^/images/" allowed_url Order deny,allow Deny from all Allow from env=allowed_url ## それ以外の URL は Basic 認証を通過すればアクセスできる AuthUserFile "/path/to/.htpasswd" AuthGroupFile /dev/null AuthName "Restricted Files" AuthType Basic require valid-user
Homebrew で過去にインストールした MySQL の操作
MySQL のバージョン
% mysql --version mysql Ver 8.0.19 for osx10.14 on x86_64 (Homebrew)
サービス状態の確認
% mysql.server status
root パスワードのリセット
セーフモードでサービスを起動し、一旦パスワードを空にする
% mysqld_safe --skip-grant-tables & % mysql -u root > use mysql; > update mysql.user set authentication_string = null where user = 'root' ;
通常モードでサービスを起動したあと、空のパスワードでログインし、パスワードを設定しなおす
% mysql.server restart > alter user 'root'@'localhost' identified by 'パスワード';
パスワードポリシーの確認と設定
> show variables like '%validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ 7 rows in set (0.00 sec) > set global validate_password.mixed_case_count = 0; > set global validate_password.number_count = 0; > set global validate_password.special_char_count = 0;
PuTTY (.ppk) → OpenSSH 形式への変換とパスフレーズの変更
PuTTY → OpenSSH 形式への変換
% puttygen -O private-openssh id_dsa.ppk -o id_dsa.pem Enter passphrase to load key:
OpenSSH → PuTTY 形式への変換
% puttygen -O private id_dsa.pem -o id_dsa.ppk Enter passphrase to load key:
OpenSSH: パスフレーズの変更
% ssh-keygen -f id_dsa.pem -p Enter old passphrase: Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.
さくらのレンタルサーバで初期ドメインへのアクセスを禁止する
さくらのレンタルサーバに複数のサイトを設置する場合、各バーチャルホストのファイルは www 以下に配置しないといけないため、初期ドメインからすべてのサイトのデータが閲覧できてしまう。
www/ - host1/ - html/ ... host1.example.com - host2/ - html/ ... host2.example.com ...
それを防ぐには Rewrite Module を使って初期ドメインの場合のみ表示先を切り替えてやればよい。
# .htaccess RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.sakura\.ne\.jp$ [NC] RewriteRule .* index.php [L]
<?php // ~/www/index.php http_response_code(404);
スクロール可能な要素に動的に内容を追加した際に一番下までスクロールする
Element.scrollHeight
を用いる。
const output = document.getElementById('output') function addItem (item) { output.appendChild(item) output.scrollTo(0, output.scrollHeight) }