Archives 2020.06.15

Tweets for 2020-06-14

  • プリキュア待機 #precure ->
  • ヒープリのOPはよくできてるので、ヒープリは傑作。 #precure ->
  • 我々はね、何も「税金なして遊んで暮らせるように国が金を出せ」なんて言ってないんですよ。リモートワークとか週30時間労働あたりで手を打とうじゃないか、納税もするし社会保障料も払うつもりですよ。だから毎月10万円支給の要求はかなりの「譲歩」ですよ。 ->
  • しかし、門閥貴族にとっては「ささやかな要求」とやらは「身の程をわきまえぬ傲慢」と見えるので核兵器で誅殺されるんですよね。 in reply to K_akiya ->
  • やっぱりソックスタイプは始めから除外で正解やった! 100均で買えるソックスタイプの椅子脚カバーをオススメしない理由 https://t.co/4yE3QRMOz7 ->
  • 「Google」とかいう「神アプリ」の通知設定(ここでいう神は神クラスの神) https://t.co/Q75uteMyqF ->
  • 最近、VISAプリペイド払いにしているのでレジが速い。ただクレジットカード扱いなので、認証プロセスが長かったり、店によってはスリット通すタイプだったりという点はやや不便。 ->
  • というわけで、やはりiDかQUIC Payを使えるようにしたいと思ったが、QUIC Payはデビットカード対応が少なくて困った。 in reply to K_akiya ->
  • 死ぬまでに一度はTボーンステーキを食いたい(実は近所のイオンに売ってる) ->
  • 何回か書いてるけど、自分も論理的思考とやらが何なのか未だによく分からないけど自分の書く文は論理的と言われたし、プログラミングやってるで。ていうか、人間の言語思考に本質的に「論理」は存在しうるのか?まあこんな哲学的な思考してたら社会性なくすからオススメせんよ。 ->
  • 本当に哲学に一分野あるような命題やった。 「知識・論理などの確実な根拠が得られることはないという懸念を提起する問題である。」ミュンヒハウゼンのトリレンマ https://t.co/FaLKzkws1D in reply to K_akiya ->
  • RT @K_akiya: 「論理的でよい」みたいな評価は指導教官からは聞いた記憶がないので、多分周りが言ってた「論理的」というのは「論旨がブレていなくて読みやすい」という意味なんだと思いますよ。指導教官からは「ちゃんと組み立てとか流れができてる。流石、漫画描いてただけある」と後… ->
  • RT @K_akiya: 自分は自分の文章が「論理的にしっかりしてる」とか言われてもよく分からんかった人やしな。高三の数学の期末試験で19点たたき出して赤点ギリギリだったから、論理的思考力も壊滅レベルちゃうか? ->
  • 合理的 論理的 違い [ 検索 ] ->
  • RT @f_fuu: https://t.co/OrgCZgxHlw ->
  • RT @debidebisan: 【創作】猫耳っ子 https://t.co/ZgIZDz5ZUq ->
  • RT @pppppupps: 今日のTRPGキャラ 夏服三つ編みツインテガール https://t.co/20ixKaFBoE ->
  • RT @hiking_miusan18: 『野クルにおみまいするシェフ大垣』
     
    なでしこ「あきちゃん!おいしいよこれ!」
    千明「ったりめーよー」
    あおい「なでしこちゃん、無理したら体壊すで」
    千明「よしイヌ子、表に出なさい」
     
    やるときゃやる部長カッコイイ https://… ->
  • RT @100nen_: 訃報◆14日、ドイツの社会学者、マックス・ウェーバー、没。56歳(誕生:1864/4/21)。「支配の3類型」を記した『経済と社会』は絶筆となった。スペイン風邪で病死。 =百年前新聞社 (1920/06/14)

    ▼眠るように息を引き取ったマックス・ウ… ->

  • ベニヤ板にサーバー組んでた初期Googleみたいだな!(多分少し違う) NTTとIPAの「シン・テレワークシステム」はラズパイだった。1ユーザーあたり月14円で運用可能 – PC Watch https://t.co/wKRV11x8AC ->
  • 今更なんだけど、外で人が集まることを禁じるの「集会の自由」の制限になるけど、欧米諸国はこの点について法的問題を解決した上で警官のパトロールと警官による解散命令だしてたんだろうかな。 ->
  • トランプ大統領は先制核攻撃の命令をする権限があるからな?(実際問題、国務省とか国防総省が文字通り死ぬ気で止めにくるだろうけど) ->

wp-login.phpにBasic認証をかけつつ投稿の「パスワード保護」機能を利用する

セキュリティ対策でwp-login.phpにBasic認証を設定したのですが、「パスワード保護」された投稿を見るにもBasic認証が必要になってしまうので、.htaccessの設定で回避しました。

パスワード保護された投稿

ちなみにWordPress Codexでは /wp-admin/ にBasic認証の付与が紹介されています。

サーバーサイドで /wp-admin/ にパスワードを追加する(Basic 認証など)と、ブログ管理領域、ログイン画面、ファイルに二層の保護を追加できます。

WordPress の安全性を高める – WordPress Codex 日本語版

結論からいうと、wp-login.phpに対するBasic認証を下記の設定にしてやればいいです。(Apache 2.4以上)

# 自サイトのautumnsky.jpからの「パスワード保護」の認証は通す
# それ以外のアクセスはBasic認証を必要とする
# Apach2.4 以上での設定例

SetEnvIf Referer "https://autumnsky.jp/" internal_site

<Files wp-login.php>
AuthUserFile /home/<your_home>/www/.htpasswd
AuthName "Login Page"
AuthType BASIC
<RequireAny>
  Require valid-user
  <RequireAll>
    Require expr %{QUERY_STRING} = 'action=postpass'
    Require env internal_site
    Require method POST
  </RequireAll>
</RequireAny>
</Files>

以下、<RequireAny> 内の説明です。

<RequireAny>Require ディレクティブのどれか一つを満たすアクセスを許可します。

なので、valid-user の他に、パスワード入力フォームからwp-login.phpを呼び出した時の条件を<RequireAny>ディレクティブに追加してやればよさそうです。

保護された投稿のパスワード入力フォームのHTMLは下記となっています。

<form action="https://autumnsky.jp/wp-login.php?action=postpass"
   class="post-password-form" method="post">

そこで、下記条件を全て満たす場合は「パスワード保護された投稿の表示のためのアクセスである」としてBasic認証なしでwp-login.phpを呼び出せるように設定します。

  1. クエリ文字列action=postpass を含む。
  2. 自サイトからのアクセスである。
  3. httpリクエストメソッドがPOSTである。

自サイトからのアクセスかどうかはリファラで判定しますが、Require ディレクティブでは使えないので、一旦、環境変数にします。
SetEnvIf ディレクティブにより、リファラが指定したURLと一致すれば環境変数 internal_site が設定されます。中身はデフォルトの値である 1
Require では、この internal_site の有無を判定する形にします。

参考:mod_setenvif – Apache HTTP サーバ バージョン 2.4

<RequireAll> で囲うと、中の条件を全て満たす時にアクセスを許可しますので、1~3の条件を括ってやります。

  <RequireAll>
    Require expr %{QUERY_STRING} = 'action=postpass'
    Require env internal_site
    Require method POST
  </RequireAll>

これで、

  • Basic認証で確認されたユーザー
    • または
  • 下記条件を全て満たす場合
    • クエリ文字列が action=postpass
    • 環境変数 internal_site が存在する
    • httpリクエストはPOSTメソッドである

となります。

これで、wp-login.phpにBasic認証をかけつつ、投稿の「パスワード保護」機能が使えます。