点検表アプリ 安全性確認書(自己評価)
点検表アプリ:生協版適正農業規範 青果・米編(試作版 Ver0.9.9)
| 対象アプリ | 点検表アプリ:生協版適正農業規範 青果・米編(試作版 Ver0.9.9) 単一のHTMLファイル「gap-seika.html」(ファイルサイズ 1,180,732 バイト) |
|---|---|
| ファイルの指紋 (SHA-256) | af59d353316c1ac4967ed4c26936bf8733a9b55936ee263b59d7e86938691b3f ※ 公開用ファイル「gap-seika.html」の値です。ファイル名を変えても値は変わりませんが、中身を1文字でも変えると値が変わります。 |
| 確認日 | 2026年10月25日 |
| 確認者 | soranoiro.net 菅野昌英 |
| 確認の方法 | プログラムの内容の確認(静的確認)と、ブラウザ(Chromium)でアプリを自動操作して動作を確かめる試験(動的確認) |
この確認書の位置づけ
この確認書は、提供者が自ら行った確認の記録(自己評価)です。第三者による認証や、危害が一切ないことの保証ではありません。確認した範囲と、確認していないことを、あわせて記載しています(5章)。
この確認書は、提供者が自ら行った確認の記録(自己評価)です。第三者による認証や、危害が一切ないことの保証ではありません。確認した範囲と、確認していないことを、あわせて記載しています(5章)。
1.アプリの構成
- アプリは1つのHTMLファイルだけでできており、ブラウザで開いて使います。サーバー側のプログラムやデータベースはありません。
- 入力内容は、利用者の端末のブラウザ内(ブラウザの保存領域)に一時保存されます。
- 人から人へのデータの受け渡しは、利用者が保存したファイル(.txt/.xlsx)を、利用者自身がLINE・メールなどで送る方法で行います。アプリが自動で送ることはありません。
- Excelファイルの作成・読み込みのために、オープンソースソフトウェア ExcelJS 4.4.0(MITライセンス)をファイル内に組み込んでいます。外部から読み込むプログラムはありません。
2.確認した項目と結果
| No. | 確認の観点 | 確認した内容・方法 | 結果 |
|---|---|---|---|
| S-1 | 外部への通信 | ・アプリに通信禁止の設定(Content Security Policy)を組み込み、外部との通信をブラウザが止めるようにした。 ・試験で、外部への通信(fetch、XMLHttpRequest、WebSocket、sendBeacon、外部画像の読み込み)をわざと実行させ、すべてブラウザに拒否されることを確認した。 ・生産者・団体事務局・監査の全機能を操作する試験で、外部への通信が0件であることを確認した。 | 適合 |
| S-2 | 外部プログラムの読み込み | 外部のサーバーからプログラムを読み込む記述がないこと、通信禁止の設定で外部プログラムの読み込みも禁止していることを確認した。 | 適合 |
| S-3 | 端末の機能の利用 | カメラ、マイク、位置情報、通知、連絡先などを使う記述がないことを確認した。 | 適合 |
| S-4 | 追跡・広告 | Cookie、アクセス解析、広告の仕組みがないことを確認した。 | 適合 |
| S-5 | 不正なファイルを読み込んだときの安全性 | 生産者名・コメント欄などにプログラム(スクリプト)を仕込んだ偽の点検データファイルを作成して読み込ませ、プログラムが実行されず、文字として表示されることを確認した(取り込み・表示・保存・前回の結果の各画面)。 | 適合 |
| S-6 | データの保存場所 | 入力内容の保存先が、端末のブラウザ内(「sgap.」で始まる保存領域)と、利用者が保存したファイルだけであることを確認した。アプリ内の「データを消去」ボタン、またはブラウザのデータ削除で消去できる。 | 適合 |
| S-7 | 作成するExcelファイル | ・様式Excelは、元の点検表Excelの中身を保ったまま、結果を書き込むセル・行の高さ・書式だけを変更する方式であることを確認した。 ・変更した部分が、Excelのファイル形式の国際規格(ISO/IEC 29500)の定義に合っていることを確認した。 ・読み込んだ元のExcelファイル自体は変更されないことを確認した。 | 適合 |
| S-8 | 組み込んだソフトウェアの既知の問題 | 脆弱性データベースによる確認(npm audit)で、重大(high/critical)は0件。中程度が2件(ExcelJSが内部で使う uuid の、特定の使い方をした場合の範囲確認の不足)あった。このアプリはその使い方をしておらず、また外部と通信しないため、影響はないと判断した。 | 条件付き適合 |
| S-9 | ライセンス | 組み込んだソフトウェアのライセンス(MIT、ISC、BSD-3-Clause、Zlib)の条件である著作権表示・ライセンス文を、アプリ内の「このアプリについて・ライセンス」に掲載した。 | 適合 |
| S-10 | 機能の動作 | 次の一連の流れを自動試験で確認し、エラーがないことを確認した。 区分の設定と配布/生産者の自己点検と保存/団体での取り込み・集約/内部監査・二者点検(集約ファイル・Excel点検表の両方)/前回の結果の参照・コピー(2023年5月版の様式Excelからの読み込みを含む)/様式Excel・一覧Excelの出力/再開 | 適合 |
| S-11 | 改ざんの確認 | 配布ファイルの指紋(SHA-256)を記録した。受け取った人が、正規のファイルかどうかを確かめられる(6章)。 | 適合 |
3.試験の環境
| ブラウザ | Chromium(Google Chromeと同じ仕組みのブラウザ)、スマートフォン相当の画面サイズを含む |
|---|---|
| 試験の方法 | Playwright(ブラウザ自動操作の試験ツール)による自動操作、プログラムの内容の確認 |
| 試験に使ったデータ | 架空の団体・生産者のデータ(実在の個人情報は使用していない) |
4.残っているリスクと対策
| リスク | 内容 | 対策 |
|---|---|---|
| 入力内容の消失 | ブラウザ内の一時保存は、ブラウザのデータ削除・機種変更・プライベートモードで消えることがある。 | 区切りごとに「ファイルに保存」する。記録として保管するのは保存したファイルとする(手引き 9-1)。 |
| 誤送信・情報漏えい | 点検データファイル・様式Excelには生産者名・点検結果が含まれる。送り先を誤ると第三者に渡る。 | 送り先を確認する。関係者以外に転送しない。端末に画面ロックを設定する。 |
| 端末の紛失・共用 | 端末内に入力内容が残る。 | 画面ロックの設定。共用端末では、使用後にアプリの「データを消去」を行う。 |
| 名前の照合ミス | 取り込み・前回の結果は名前で照合するため、表記の違いで別人扱いになる。 | 生産者名・団体名の表記を統一する。 |
| 試作版の不具合 | 想定していない操作で、正しく動かない可能性がある。 | テスト運用期間中は、従来の記録も並行して残す。不具合は提供者に報告する。 |
| 改ざんされたファイル | 正規でないファイルを受け取る可能性。 | 正規の配布場所(URL)から開く。必要に応じて指紋(SHA-256)を確認する。 |
5.確認していないこと(この確認の限界)
- iPhone・Androidの実機での網羅的な動作確認(共有画面からのLINE・メール送信を含む)
- Microsoft Excelの全バージョンでの表示確認
- 専門業者・第三者機関による脆弱性診断
- 配布場所(GitHub Pagesなど)のサーバー自体の安全性(サービス提供者の管理範囲)
- 点検表の内容(規範・解説)の正確性の再確認(日本生協連の点検表から自動で取り込んだもの)
6.ファイルが正規のものか確かめる方法
受け取ったHTMLファイルの指紋(SHA-256)を計算し、1ページ目の値と一致すれば、提供者が確認したものと同じファイルです。
| Windows | PowerShellで Get-FileHash ファイル名.html -Algorithm SHA256またはコマンドプロンプトで certutil -hashfile ファイル名.html SHA256 |
|---|---|
| Mac | ターミナルで shasum -a 256 ファイル名.html |
7.再確認の時期
- アプリの版を更新したとき(少なくとも S-1、S-5、S-8、S-10 を再確認する)
- 組み込んだソフトウェア(ExcelJS)を更新したとき
- 重大な脆弱性の情報が公表されたとき
- 上記にかかわらず、年1回
8.確認の記録
| 確認日 | 版 | 確認者 | 備考 |
|---|---|---|---|
| 2026年10月15日 | Ver0.9.7 | soranoiro.net 菅野昌英 | 初版 |
| 2026年10月18日 | Ver0.9.8 | soranoiro.net 菅野昌英 | 2023年5月版の読み込みを追加。全項目を再確認 |
| 2026年10月25日 | Ver0.9.9 | soranoiro.net 菅野昌英 | 検索の対象にコメントを追加。全項目を再確認 |