佐賀に出張

朝は広島みなと公園でキクの散歩
昼間に新幹線に乗ろうと思ったら、改札でエラー・・・やらかしました、予約を三日前にしたけど、予約したときに乗車日を間違えた
再び、予約をし直して乗車(1万円は消えた)

広島から新幹線さくらで新鳥栖に、ローカルに乗換て30分、列車は混雑していて座れなかった
今日から4日間は佐賀で仕事・・・ここもすでに4年目、早いものだ
昼から夕方まで仕事して、ホテルは駅の北側、夕食はカレー屋に行く
帰りにスーパーで酒を購入してホテルで一杯

佐賀の駅前 高校生が多い

五日市の埋立に散歩

ひっつき虫、オオオナモミでキクはたいへん
少し雲が出ている 五日市の埋立地
甲斐犬のキクと散歩

昼は三人でインドカレーのボンベイにナンを食べに・・・いろいろな種類のナンがあるが、プレーンナンが一番おいしい
少し、ナン造りを研究してみるか
ボンベイではYamaoka夫妻と偶然日であった

元宇品の散歩

天気が良いので今日は森から海岸に
似島を背景に甲斐犬のキクがウロウロ

今日は土曜日で天気が良い
すっかり良い季節となった
元宇品の海岸は、一部が崩れたため全面通行止めとなっている・・・ほとんど歩いている人はいない
しかし、夏に遊んだ人が残したゴミや海岸に流れついている発泡スチロール(漁業などの浮き)の屑があり、あまりきれいとは言えない

昼前に博多南に出張

広島みなと公園を散歩 気持ちの良い秋晴れ
新しい大型巡視船ひろしま、尖閣列島にも行くらしい

あっという間に季節は過ぎて、早くも10月、すっかり涼しくなり秋晴れ

新幹線でおにぎりを食べて
昼過ぎに新幹線操車場の駅、博多南に到着

キクと散歩 サイトのセキュリティとバックアップ

昨日に続いて、今日も雨の中、みなと公園にキクの散歩

1.QMACサイトの画面の改善

1-1. 静的アーカイブ(2007年以前のHP)をテーマの枠中に

1992〜2007年度の旧サイトHTML 39本が、ヘッダー・サイドバー・フッターの外に置かれていた
原本は書き換えず、配信のたびにPHPで変換する方式とした・・旧サイトの記録としての価値を損なわずに、見た目だけを揃る

/archive/2007/ → 00Index/Activities/2007(H19).htm を読む
→ の中身だけ抽出
→ 挿入ナビ・SSIコメント・重複フッターを除去
→ 相対パスを絶対URLに変換
→ .qmac-legacy で包んでテーマのテンプレートに流し込む

1-2. その他の改善
  • 連絡先の移動・・ フッターは画面下端で見えないため、サイドバー最下部へ
  • フッター 「© 2026 中国地区品質経営協会」のみ中央寄せ
  • マニュアル
    管理者・編集者以外にはサイドバーに表示しない
  • ログインボタン
    ヘッダー右下。未ログイン時「ログイン」、ログイン時「管理画面」

2.QMACサイトのセキュリティ対策

2-1. 現状調査
観点評価
攻撃されやすさ 良好 — プラグイン1本、パーミッション適正、改ざんなし
侵入時の被害 やや弱い — 管理者が管理画面からPHPを書き換えられた
気づけるか 弱い — 改ざん検知なし
戻せるか最も弱い — バックアップが全て同一サーバー内
続けられるか最も弱い — プラグイン・テーマの自動更新がオフ

WordPressサイトの多くは「プラグイン20本・未更新・権限管理なし」という状態にあることが多い

主な発見

発見深刻度
プラグイン・テーマの自動更新がオフ高
バックアップが同一サーバー内のみ高
XML-RPC が有効(system.multicall が使える)中
WWWアドレスが暗号化されず表示中
セキュリティヘッダがほぼ未設定中
検証環境に wp-config.php.orig(DBパスワードが平文) 中
公開フォルダに.bak系が25本低
DISALLOW_FILE_EDIT が未設定 中
2-2. 実施した対策
  • ① wp-config.php.orig の削除・・検証環境の公開フォルダに、DBのパスワードが平文で書かれたファイルが置かれていた・・.orig はPHPとして処理されないため、Basic認証が外れた瞬間に中身がそのまま読める
  • ② .bak 系61本を公開フォルダ外へ・・.bak → .new → php -l → mv という作業手順を守った結果、2日間で61本が蓄積していた・・手順そのものは正しいが、公開領域に残す理由がない
  • ③ DISALLOW_FILE_EDIT・・管理画面からのテーマ・プラグイン編集を禁止・・管理者が乗っ取られても、PHPを書き込まれない・・ISALLOW_FILE_MODS は入れていない(自動更新まで止まるため)
2-3.自動更新の有効化

公式テーマとXserver製プラグインの自動更新で壊れる確率は低いので、自動更新にする
cloudsecure-wp-security → 自動更新 ON
twentytwentyfive(親) → 自動更新 ON
qmac / qmac-core(自作) → 対象外

2.4.HTTPS常時化とセキュリティヘッダ

http://qmac.jp/ がそのまま200で表示されていた。暗号化されない経路が生きている状態
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Header always set X-Content-Type-Options “nosniff”
Header always set X-Frame-Options “SAMEORIGIN”
Header always set Referrer-Policy “strict-origin-when-cross-origin”

Strict-Transport-Security と Content-Security-Policy は入れていない。設定ミスでサイトが開かなくなり、HSTSはブラウザが記憶するため取り消しが効きにくい

2-4.XML-RPC の無効化

system.multicall は1リクエストに数百通りのパスワードを詰められる。ログイン試行制限を実質的に回避される・・無効化の前に POST system.listMethods が 78メソッドを返すことを実測し、変更後に403になることを確認

▶この続きを見る・・・・

キクと散歩 QMACサイトの本格的稼働

なぎさ公園をキクと散歩 小雨が降っている

QMACサイトの本格的稼働

1.本番切替(.jp)

テスト用に.worldを構築していたので、その内容を本番の.jpに移行

  • ドメイン付け替え 旧アカウント(awl-web)から削除 → 協会の新サーバーのアカウント(xsXXXX66)へ追加
  • サイト配置 事前構築済みの qmac_jp_build を rsync。DB は xsXX5766_wp2
  • URL置換 qmac.world → qmac.jp 640件(事前算出値と完全一致)
  • DNS・SSL Aレコード XX.XXX.221.147、無料独自SSL発行
  • 旧サイト保全 2.5GB・11,373件・・手元とサーバーに二重保管
2.行事の新規・修正の管理画面改善

行事を作成・修正する編集画面は、Wordpressの標準から独自のソフトで構築したため、編集機能の右サイドバーメニューの縦側が大幅に長くなって、かなり下までスクロールしないと、編集作業ができないばかりか、良く機能が分からない状態だったので、UIを含めて大幅な改善をする

  • 管理バーから「サイトを編集」を削除(開いても編集できず表示が崩れるため・・Wordpress標準だが使えない)
  • 抜粋の改行バグを修正(改行だけ残ると一覧が空白になる)・・保存時に post_excerpt を trim(不要な空白等を自動削除)
  • 行事リストで内容が分からないので、行事一覧にタイトル+副題の連結する、開催日列の書式・ソート
  • 使用しないアイキャッチを非表示(行事・固定ページ・投稿)
  • 写真の代替探索を削除(削除しても消えない問題を解消)
  • トップの写真帯を行事ごとにグループ化
  • 年の桁数を4桁に制限、全画面モード既定OFF、スラッグ欄を編集者から非表示
3.右サイドバーメニューの縦方向圧縮

幅を420pxに広げ、2列化。写真と資料のパネル分離、▲▼での並べ替え、複数枚の一括選択、重複除外を実装

  • 2,849px → 約1,600px(−44%)
  • 行事の詳細 589px →313px
  • 写真・資料
    1,685px→
    917px(写真/資料に分離)
4.マニュアル更新

パネル名・ボタン名の変更に伴う15か所、さらに古くなった記述6件を修正・・抜粋の説明を新規追加

▶この続きを見る・・・・

キクの脱走 QMACサイトの新サーバ構築

また、朝キクが脱走していて、犬を散歩させている近くの叔母さんが、連れて来てもらった・・・急に、脱走し始めたのでどこに原因があるかを探すと、カレーの厨房に2カ所に抜道を発見、さっそく合板で穴を塞ぎ、ついでに長い間て片付けていなかったカレーの厨房と中庭、バルコニーを全員で大掃除
かなりの不要材を整理する
甲斐犬のキクの脱走はすっかり近所では有名になり、マークされる存在となった
2~3日前から、少し喉が痛い
昼からは何となく寒くなり、夕方まで寝て過ごす

QMACサイト本番用のDB作成

QMACサイトの新しいサーバにはテスト用の.worldのDBがあり、新しく本番用のDBをMysqlで作成して、管理者パスワードを設定し、.worldの内容を本番用にコピーして、BASIC認証は削除する

  • cp -a ファイルを複製 → qmac_jp_build/
  • wp db export DBをテキストに書き出し → qmac_cutover.sql
  • wp db import 別のDBに流し込み → xs815766_wp2
  • dry-run 640件と予告(DBは無傷)
  • 本実行 640件を書き換え
  • 残存確認 0件 → 漏れなし
wp-config.php を新DB用に書換

変更箇所

  • DB_NAME → xs815766_wp2
  • DB_USER / DB_PASSWORD → 管理者パスワード
  • コピーした認証キー8行(AUTH_KEY 等のSALT)を差し替え — https://api.wordpress.org/secret-key/1.1/salt/ で生成して差し替えする
  • 認証キーについて、wp-config.php の中に、WordPressが自動生成した8行の鍵・・不正アクセスが疑われるとき、管理者が交代したときは、wp config shuffle-salts で作り直す
甲斐犬のキク

2階の雑草抜きとタコヤキ

今日は2階の掃除をして、一段落していると、キクが公園にいると近所に人が連絡してきた・・・厨房の扉が開いていた・・・近所の公園で帰ると、警官が訪問してくる・・扉を開けて話している間から、またキクが脱走・・・警官と追いかけて、キクを確保、すっかりブラックリストに載っている

2階の庭の雑草を抜きます
夕食は久しぶりにタコヤキ、うまく焼けるようになりました

キクと元宇品の散歩 awl-web.com 保守

キクと元宇品の森を散歩

awl-web.com 保守作業

サーバー環境
  • WordPress 7.1
  • PHP 8.3.33(対応済み)
  • MariaDB 10.5.26
  • テーマ Parabola 2.4.3
  • パーマリンク /archives/%post_id%
  • サーバー応答中央値 199ms(良好)
  • uploads 52.33 GB
  • データベース 321.50 MB
  • themes + plugins 約 180 MB

想定より健全だった。特にパーマリンクが投稿ID方式のため、カテゴリやタグを変更してもURLが壊れない構造になっている。10年分の被リンクが守られる良い設計・・・一方、uploads 52GB は一括バックアップが現実的でないサイズで、実質「バックアップが無い」状態だった。これが最大のリスクと判断

テーブル接頭辞(重要)・・このサイトのテーブル接頭辞は wp_ ではなく action_・・・SQL を書く際は必ずこれに合わせる

  • データベース名: awlweb_db
  • 投稿テーブル: action_posts
  • 設定テーブル: action_options
  • Relevanssiインデックス: action_relevanssi

実施内容

バックアップ体制の確立
  • “Dropbox\04稼動中WebSite\awl-web.com保守”にバックアップ
  • wp-config.php / .htaccess  FTPで手動取得 ・・・完了
  • データベース Xserver サーバーパネル > MySQLバックアップ・・・完了
  • themes / plugins / mu-plugins  FTPで取得(約180MB)・・・完了
  • uploads  年別フォルダごとに取得 ・・・2010年分まで完了
不要ファイルの削除
  • Starter Templates & Sites Pack テーマのデモ読み込み用・・稼働中サイトには不要・・脆弱性報告のある系統
  • WP Fast Search バージョン 0.1 の放置プラグイン・・Relevanssi と機能重複
  • wp-kougabu (778 KB )削除済みプラグインの残骸
  • al2fb_last_error (39 KB )Add Link to Facebook のログ
  • bfa_ata4 (17 KB )削除済みプラグイン
  • ShareAndFollowAdminOptions(13 KB )Share and Follow
  • apl_backup_update_*( 各8KB程度 )Advanced Post List の設定バックアップ(2017〜2020年)
  • hu_theme_options( 7.2 KB )旧テーマ Hueman の設定

京橋川の土手を散歩

広島大橋を渡り京橋川の西側の土手を歩く 風が心地よい

Audit Finds Sysyem(審査指摘システム)の構築

ISO審査員として審査を実施したとき審査指摘作成において、内容検討をAI判定を参考にして、指摘レベルの標準化を図る(内部監査にも適用できる)

1-1.全体構成

システム上、簡単に指摘に入れるために、二つのルートを作成する

  • Part1:審査員が最初に指摘作成に入り、各項目(組織 × 対象ISO × 審査種別:一意となる)を設定し指摘を作成、この裏で、該当する審査計画を作成・・・あらかじめ該当する項目があるときはプルダウンで設定
  • Part2:あらかじめ審査計画が作成されていて、審査員は審査計画に従って、指摘を作成する
  • Part1,Part2は混在しうる
  • Part1の方式では審査員が項目(組織 × 対象ISO × 審査種別)を間違えるリスクがあるが、最終の審査報告でリーダーが修正する(計画が見えない状態で審査員が指摘を書き該当項目は修正)
1-2. 審査計画の単位
  • audit_plan = 組織 × 対象ISO × 審査種別 ← ★一意とする
  • 同じ組織・同じ規格・同じ審査種別の計画を複数作らせない
1-3. 統合審査はリーダー管理者の作業
  • 同じ日程で行った QMS・EMS・OHSMS の計画をまとめる「統合審査」は、管理者がグルーピングして作る
1-4. 審査期間
  • 実施した審査日が積み重なって計画の審査期間になる
  • 審査日が計画の期間の外なら、期間を広げる
  • 縮めることはしない
  • 最終的には審査報告書で管理者が修正する(自動拡張はポカヨケとして入れる)
1-5. 計画に入る情報

組織 / 対象ISO / 審査種別 / 審査期間 / 審査員 / 審査部署・・審査基準・重点事項はパート2で対応する

▶この続きを見る・・・・

QMACサイトの再編とWordPress化

朝は甲斐犬のキクを連れて、元宇品の森に・・かなり涼しくなった

4. 構築過程で発見・対処した問題

8件すべて、実際に動かして判明した内容

  • .htpasswd が公開ルート直下に置かれ、.htaccess は全行コメントアウト(旧サイトの重大な設定不備)
  • 管理画面でカスタムフィールドが編集できない(supports に custom-fields 欠落)
  • 中身のない年度18本もリンク表示され、空ページへ飛ぶ状態
  • 年度アーカイブが機能せず、ブログ形式・投稿日で表示
  • 一括投入で画像圧縮が効かない経路があり、原本1.71MBが残る
  • 静的アーカイブが全ページ文字化け(HTTPヘッダのcharsetがmetaより優先)
  • マニュアルの開催日入力手順が実際の画面と相違(手順どおりに操作すると失敗する)
  • 空の画像ブロック20個がすべて検証エラー

5. 旧サイト由来の誤記(原本どおり投入・訂正待ち)

行事名が空 2件 旧サイトが行事名自体をPDFリンクにしていた
日付の年が1年ずれ 3件 2008年度、曜日は正しく年だけ誤り
曜日が合わない4件 2020〜2023年度
表記の重複誤記 3件 「先進企業視察会視察会」
名簿の疑わしい記載 6件 「幹事→監事」「㈱ダイクレ㈱」等

6. 事務局向けマニュアル

780行・9章+付録2

対象を事務局に絞り、管理者向けの内容とは分けた・・・マニュアルは公開サイト上の固定ページとして設置している・・・更新経路は「ページ上で直接編集」に一本化・・・ 変換スクリプトとページ編集の二経路があると、どちらかの修正が失われる・・・スクリプトは移行用の一度きりのものとして明記のうえ保管

1. 移行前の状態と課題

構成 frameset ベースの静的HTML
規模 773ファイル / 2.74GB
制作 Dreamweaverで約15年間
スマホ対応 なし

2. 資産の棚卸し

破棄したもの

運営委員会PDF 1,534本 / 206MB パスワード運用ごと廃止
死蔵HTML 654本 トップから到達不能な滞留分
制作元データ(.mif / .pef)207MB サイト運用に不要

移行したもの

行事 192件(2008〜2025年度・18年分)
添付ファイル 368件 / 84MB(写真138・PDF230)
固定ページ 8本(協会案内5・名簿2・マニュアル1)
静的アーカイブ 16本(1992〜2007年度)

3. 設計の要点

3-1. データと見た目の分離
親テーマtwentytwentyfive(WordPress公式) 本体と同時に更新される基盤
子テーマqmac(新規作成) 配色・レイアウト・動的ブロック
プラグインqmac-core(新規作成) 投稿タイプ・分類・管理画面整理
3-2. ブロックテーマの子テーマ方式を採用

当初はクラシックテーマを検討したが撤回した・・・クラシックテーマはWordPress本体の更新に追従しにくく、ブロックエディタで書かれた投稿との整合が崩れやすい・・子テーマ方式なら親テーマが本体と一緒に更新され、独自の差分だけを自前で保守すればよい。保守性と自由度が両立する・・・・親テーマが公式テーマである点も重要で、コアチームが保守しており、第三者テーマのように開発停止で行き詰まるリスクが小さい

3-3. 事務局が壊せる箇所を構造的に減らした

「マニュアルに書いてあるから大丈夫」ではなく、そもそも触れないようにする方針

権限 編集者権限(外観・プラグイン・ツールに到達不可)
左メニュー 5項目に限定
ブロック 102種を非表示にし、17種のみ許可
パターン 挿入可能なパターンを0本に
テンプレート 編集欄を非表示にしたうえ、保存自体を拒否
3-4. 年度アーカイブの自動化

現行運用で最も手間だった作業を自動化・・・開催日を入力するだけで、年度タームの作成・付与・サイドパネルへの反映がすべて自動で行われる・・事務局の手作業はゼロ・・・・年度末の切替も、状態を「予定 → 終了」に変えるボタン1つ(取り消し可)に集約

更新の担い手事務局
行事の追加管理画面で入力
年度末の切替ボタンで切り替え
過去年度リンク完全自動
写真の掲載ドラッグで追加(自動圧縮)
スマホ対応あり
▶この続きを見る・・・・

キクの散歩と高圧洗浄機

今日は京橋川の西側と東側を歩く、東側と西側では、随分と雰囲気が違う
少し天気は曇りだが、過ごしやすい
月曜にはJSAにセミナー資料を送付するために、1日編集作業・・・AIで調べさせてスピードアップ
高圧洗浄機のホースとガンが壊れたので、ホースは古いホースを流用、ガンは購入・・・テストで玄関周りの土間を清掃

甲斐犬のキクと朝の散歩

今日は曇っている 京橋川の土手
直射日光が無いくてもキクは暑い

今日は曇りだが、昼過ぎにはかなりの雨が降った
今週は週末まで天気は悪そうだ・・・暑さが和らぐならば歓迎ですね

そろそろ小規模事業者補助金の採択後の本見積を本気でしなくてはならないが、厨房と1Fのカウンターの平面計画が中々決まらないので・・・・もう5案も作成したが、どうやら納得できそうな計画が決まったので、厨房器具を配置して、最終見積を依頼する

カレー店舗の平面計画

10月の初めに企業のISO研修を頼まれているので、PPTを作成して、校正をClaudeに依頼する・・・しっかりと誤字、脱字、Noの間違い、解釈の揺れを指摘してくれて、その後修正も自動で実施、楽になったものだ

ガジュマル

観葉植物としてガジュマルを購入してきた
コード画面名ルート名補足
AUD-SUM指摘リスト(監査指摘 統合一覧)audits.findings_summary集計部分をAUD-AGGへ分離、統合一覧のみに縮小
AUD-CA是正処置報告(1指摘=1報告の編集)audit_corrective_actions.edit同一会社なら誰でも記入可(一般ユーザー含む)
AUD-CA-LIST是正処置リスト(報告書単位)audit_corrective_actions.index監査員向け。導線はAUD-CA経由のみ
AUD-CA-PLAN是正処置リスト(計画配下・全報告書横断)audits.corrective_actions_list一般ユーザーにも開放
AUD-CA-SELECT是正処置一覧・計画選択(一般ユーザー向け簡易版)audits.corrective_actions_select
IA-MODAL-S1〜S6AI支援モーダル(事実メモ〜生成結果)AI支援モーダル(事実メモ〜生成結果)AUD-FIND内
キクと元宇品の森で TAMは8日頃からぎっくり腰の状況、少し歩けるように

監査各ページの名前の統一

画面名称を統一

コード画面名ルート名補足
AUD-LIST内部監査計画リストaudits.index監査アクセス保持者限定(一般ユーザー不可)
AUD-PLAN内部監査計画書audits.showボタン配置統一
AUD-HOME監査実施一覧audit_execution.index
AUD-HOME-M1新しい監査を始める(モーダル)AUD-HOME内
AUD-RPT個別監査計画・報告書audit_reports.show
AUD-SCH監査予定表audits.schedule
AUD-SCH-M1予定を追加(モーダル)AUD-SCH内
AUD-SCH-M2予定を編集(モーダル)AUD-SCH内
AUD-FIND個別監査指摘audit_findings.edit監査アクセス保持者限定
AUD-FIND-M1指摘 編集(モーダル)AUD-FIND内
AUD-AGG指摘集計(部署別集計+全合計)audits.findings_aggregation旧AUD-SUMの前半部分を分離