カテゴリー: My Work
会社を60歳で定年となり、会社を設立していろいろな仕事をしてきました
佐賀4日目 佐賀から大分に
佐賀の三日目
佐賀での二日目
佐賀に出張
八木地区の豪雨災害対策の砂防堤
市内で仕事
JSAでセミナー
JSAセミナー二日目 Audit Finds System
Audit Finds System 審査計画の統合
指摘作成(AUD-TOP)から入ると、規格ごとに審査計画が裏で作られる(被審査組織 × 対象ISO × 審査種別で一意)、しかし複数のISOシステムの統合(複合)審査がある
同じ被審査組織の同じ審査(例:QMS と EMS の統合審査)が別々の計画になったとき、後から1つの計画(統合審査計画書)にまとめる
確定した規則
| 項目 | 規則 |
| 入口 | 統合先の AUD-PLAN(表示)に[他の計画を統合] 管理者(role 1/5)だけに出す |
| 統合できる計画 | 同じ被審査組織 どちらも Close 前 規格が重ならない(同じ規格を持つ計画は種別が違っても不可) 予約組織「その他」は不可 |
| 移す側の計画 | 削除し、統合の記録を残す(取り消しは無い) |
| 指摘番号 | 移す側の指摘は、統合先の続き番号を振り直す(移す側の番号順を保つ) |
| 審査部署 | 同名の部署は1つにまとめる(統合先の部署に指摘を移す) |
| チェックシート | 統合先を残す 移す側に記入があれば確認画面で示す(記入内容は統合の記録に写しを残す) |
| 審査チーム | 合わせる 移す側のリーダーはメンバーにする |
| 期間 | 両方を含むよう広げる |
| 権限 | 管理者だけ |
JSAでセミナー二日間 Audit Finds System
Audit Finds System再構築
変更内容
| 対象 | 内容 |
| 指摘一覧(AUD-FLIST)の[開く] | 指摘の詳細(AUD-FIND-M1)を最初から開いた状態で表示する 指摘リスト(AUD-FIND の表・審査日・件数)は出さない |
| AI 支援 | 直接開いた表示でも使える。AI 支援を閉じると(反映しなくても)指摘の詳細に戻る(ia-support.js が閉じたことを知らせるイベントを出すようにした) |
| [是正処置](新設) | 指摘一覧の不適合の行に追加。是正処置報告書(AUD-CA)の「指摘一覧へ」で、絞り込みのまま一覧へ戻る(保存後も戻り先を引き継ぐ) |
| 戻り先の検証(App\Support\FindingListReturn・新規) | 戻り先 URL は利用者が書き換えられるため、指摘一覧のパスだけを受け付け、相対 URL に組み直す(よそのサイト・別の画面・javascript: は無視して初期表示の指摘一覧へ) |
| 他の部署の指摘 ID | 無視して通常の AUD-FIND を表示する |
| タブ | 直接開いた表示では[指摘一覧]タブを選んだ状態 |
| 変えていないもの | 指摘の保存処理(部署単位の一括保存と楽観ロック)/AUD-PLAN・AUD-SUM から AUD-FIND に入る使い方/画面コード(M1 は AUD-FIND のモーダルのまま) |
| ヘルプ・文書 | 指摘一覧のヘルプ(【開く】【是正処置】)/CLAUDE.md §1・§6(判断25・統合の確定事項)/audit-ui スキル |
検証
| 検証 | 結果 |
| php artisan test | 562 passed(2737 assertions)C7FindingListTest に2本追加 (直接開く・戻り先の検証・他の部署の ID・是正処置の戻り先/Close 済みは見るだけ) |
| npm run build | 実行済み (ia-support.js を変えたため成果物をコミット) |
| ブラウザ (一時 SQLite・管理者) | 一覧(製造部で絞り込み)→[開く]→ 詳細が開き指摘リストは出ない → 内容を直して「決定・保存」→ 絞り込みのまま一覧へ戻り修正が反映 「キャンセル」・Esc でも戻る AI 支援を開いて閉じると詳細に戻る (AI 支援中の Esc では移動しない) [是正処置]→「指摘一覧へ」で絞り込みのまま戻る Close 済みは保存ボタンなし。画面のエラー 0 件 |
| マイグレーション | なし |
| MariaDB での audit:smoke-check | 未実施(PC の Claude Code が §10 の手順で実施) 今回は DB の処理を変えていない |
QMACサイト改善

5.Google Search Console
- ドメインプロパティ qmacサイト を office QMAC 名義で登録し、確認は Xserver の DNS に TXT を追加(既存のSPF の行は変更していない)
- TXT レコードは削除しないこと(削除すると所有権の確認が外れる)、サイトマップ(wp-sitemap.xml)を2026-10-06 に送信
QMACサイトの改善
1.サイトのセキュリティ
- 発見した問題:管理者のログイン名が REST API とサイトマップで公開されていた(id=1)
- 対処:管理者アカウントを新規作成して旧アカウントを削除・・qmac-core に security-hardening.php を新設し、バージョン表示・XML-RPC・RSD・未ログイン時の REST ユーザー一覧・投稿者サイトマップ・投稿者ページを閉じた(テーマを替えても消えないようプラグイン側に配置)
- 既存の防御:cloudsecure-wp-security のログイン試行制限(30秒5回で600秒ロック)・ユーザー名列挙防止・XML-RPC 無効化が有効、管理者ログイン通知を有効化
- 復旧手順:締め出し時の手順を「10分待つ → 再設定メール → SSH でパスワード変更 → 設定の書き換え→ プラグイン停止(設定の控えから復元)」の順に整理し、world で検証
2.資料室の作成(運営委員向け・非公開資料)
- 既存の作り(公開フォルダ外への保存、PHP 経由の配信、30日で自動削除)が要件を満たしていることを確認
- 追加:操作記録(誰が・いつ・どのファイルを提出/取得/削除したか。表示名のみ記録、1年保存)、自動削除の最終実行の表示と48時間超の警告、利用案内(ダウンロード記録とサーバのバックアップに最大14日残)
3.SEO対策
- 基本設定:Title(ページ題名:ページの主題が伝わり、クリックされやすくなる)、Description(説明文:開く前に内容が分かる)、h1(見出し:何のページかを検索エンジンに正しく伝える)、Canonical(正式な住所:同じページの評価が分散しない)、言語・スマホ表示:スマホ基準の評価、年度ページ・静的アーカイブに h1、サイドパネルを nav 化、一覧系に canonical、全ページに OGP と twitter:card、トップに rganization・WebSite、予定の行事に Event(会場住所、会場とオンラインの併用、画像、説明文)
- 第2弾:旧サイト URL の転送を35本から大幅に拡充し、旧ディレクトリは 410 に、旧 URL が無関係なページへ飛ばされていた WordPress の推測転送を防止、誤字スラッグ4件の修正と、新規行事への英数字スラッグ(開催日+ID)の自動付与
- 確認結果:リッチリザルトテストで、トップ(組織・地域のお店やサービス)と行事(イベント)がいずれも有効、エラー0件、残る任意の指摘は offers・performer のみ(事務局の入力負担を増やさないため対応しない)
- OGP 画像:協会ロゴと名称入りの 1200×630 画像を作成・配置。共有プレビューで表示を確認
4.訪問者カウンター設置
- 目的:Xserver のアクセス解析はBOTを含み実態が不明、実際の訪問をカウント
- 仕組み:ページ表示後に JavaScript が通知を送り、サーバ側で検証して日付×ページの件数だけを保存、ボット・ログイン中の利用者・資料室は数えない
- プライバシー:IP アドレスと Cookie は保存しない。重複判定用の値は当日だけ使い、翌朝までに破棄(受信時とサーバの cron の両方で実行)
- 事務局のダッシュボード「アクセス状況」に今月の訪問数・閲覧数、先月比、閲覧の多いページ上位10件。計測開始は 2026-10-05(初日は TAM の確認の閲覧を含む)
基二が来広
昼前に博多南に出張
キクと散歩 サイトのセキュリティとバックアップ

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サイトの新サーバ構築
また、朝キクが脱走していて、犬を散歩させている近くの叔母さんが、連れて来てもらった・・・急に、脱走し始めたのでどこに原因があるかを探すと、カレーの厨房に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 で作り直す
シルバーウイーク QMACサイトの移行について

切替で何が起きるか
| レコード | 切替前 | 切替後 |
| NS ×5 | ns1〜5.xserver.jp | 変わらない |
| A(3本) | XXX.XX.XXX.XXX | 協会サーバーのIP(自動設定) |
| MX | XXXX.jp | 自動で再作成される |
| TXT(SPF) | svXXXX を含む | 自動生成され、内容が変わる |
★注意:旧アカウントから削除した瞬間、ゾーン全体が消えます・・Aレコードが古いまま残る状態より深刻で、ドメインそのものが引けなくなります(名前解決エラー)・・・削除と追加は連続して、間を空けずに実施してください。数分以内が理想
TTLについて
全レコードが3600秒(1時間)です。切替の前日に、Aレコード3本のTTLを300秒に下げておいてください。 切替後の反映待ちが1時間から5分程度に縮みます・・切替が落ち着いたら3600に戻します。
QMACサイトの移行について
DNSレコードの役割
| 種別 | 役割 | 無いとどうなるか |
| NS | このドメインの電話帳をどのサーバーが管理しているかを示す | ドメイン全体が引けない |
| A | ホスト名をIPアドレスに変換 | Webの接続先 サイトが表示されない |
| MX | メールの配送先を指定 | メールが届かない |
| TXT | 任意の文字列 SPF(送信元の正当性宣言)や所有権確認に使う | なりすましを防げない 認証できない |
| CNAME | 別のホスト名の別名(今回は未使用) | — |
Web(A)とメール(MX)は完全に独立しています・・片方を変えてももう片方に影響しません。今回メールを使っていないので、実質Aレコードだけの話になります
- NS ×5(ns1〜ns5.xserver.jp)この5本が今回の移行を非常に楽にしています・・ドメインの管理をXserverのDNSサーバーに委任している状態・・旧アカウントも協会アカウントも同じXserverのNSを使うため、アカウントを移してもNSは変わりません→ レジストラ(ドメイン登録業者)側の設定変更が不要、世界中のDNSに伝播する48時間待ちも発生しません・・変わるのはAレコードの値だけ
- A:XXX.jp → XXX.XX.XXX.XXX・・・現在の旧サーバーのIPです・・切替で変わるのはここ1行(+www・ワイルドカード)・・協会アカウントにドメインを追加すると、Xserverが自動でそのアカウントのサーバーIPに書き換えます・・手で入力する必要はない
- A:www.qmac.jp → 同じIPwww.qmac.jp でもアクセスできるようにするもの・・ただし切替後、www 有り/無しのどちらかに統一する必要があります。両方が同じ内容で表示されると、検索エンジンから重複コンテンツと見なされます(.htaccess で301リダイレクト)
- A:*.qmac.jp → 同じIP(ワイルドカード)・・存在しないものを含む、あらゆるサブドメインを受け付ける設定で、abc.qmac.jp でも test.qmac.jp でも、すべてこのサーバーに来ます・・削除は切替が完全に落ち着いてからに
- MX:XXX.jp(優先度0)・・@XXX.jp 宛のメールを「XXX.jp のAレコードが指すサーバー」に配送する設定、メールを使用していないので機能していませんが、MXが存在する以上、外部から送られたメールは受理されます・・ 受け皿が無ければ捨てられるか、エラーで返ります
- TXT:SPFレコード・・v=XXX +a:svXXX.xserver.jp +a:qmac.jp +mx include:XXX.sender.xserver.jp ~all、「@qmac.jp を名乗って送信してよいのは、ここに書かれたサーバーだけ」という宣言です。なりすまし対策に使用・・注目すべき点:svXXXX.xserver.jp — これは旧アカウントのサーバー名です。協会アカウントは svXXXX なので、切替後この記述は無意味になります
横浜から広島に
横浜市内で
小田原から横浜に
町田から秦野を経由して小田原に
神奈川の町田に
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つ(取り消し可)に集約
| 更新の担い手 | 事務局 |
| 行事の追加 | 管理画面で入力 |
| 年度末の切替 | ボタンで切り替え |
| 過去年度リンク | 完全自動 |
| 写真の掲載 | ドラッグで追加(自動圧縮) |
| スマホ対応 | あり |
鹿児島から広島に
今日は一日、鹿児島で仕事だが、昼から現場確認に、東シナ海側の吹上浜(加世田市)に行く、吹上浜は久しぶりですね
2005年に、HHM、SDK、SEI、TAMの4人で、薩摩半島のキャラバンに行っています
2月の連休は暖かい薩摩半島の南端に温泉ざんまい
仕事は少し早く終わったが、飛行機の便は無いので予定通りの便で帰宅に

鹿児島に出張
雨のみなと公園 QMAC品質研究会
鳥取から広島に帰る

朝カレーセット¥650は安い


新幹線に乗り換えて広島
鳥取に出張
今日は昼から鳥取での仕事なので、昼前に出かける
仕事は夕方に終わり、予約していたホテルに行くと・・・予約が無い
よくよく確認してみると9/2なのに10/2で予約していました・・・焦って宿泊場所を探すが、ホテルはどこも満室だ、¥32000のホテルはあったが論外、あとはカプセルホテルかゲストハウスしかないと・・・探していたら寿司屋が旅館をしているのが宿泊できそう・・・少し歩くことになるが、汗だくで到着・・・風呂は銭湯の温泉に
久しぶりに木賃宿で寝ることに


































































