![Apps ScriptでGoogleフォーム情報漏洩リスクを確認する方法](https://iwb.jp/wp-content/uploads/2024/06/checking-google-form-data-leakage-risk-with-apps-script.png)
Googleフォームの情報漏洩リスクを確認
最近Googleフォームによる個人情報漏洩のニュースをよく見かけます。
- あわわ、情報漏えいの可能性 Googleフォームで設定ミス - ITmedia NEWS
- Acompany で 4 件の Google フォーム誤設定、最大 164 名の個人情報が閲覧可能に
- Googleフォーム「結果の概要を表示する」設定をONで公開、申込者の個人情報が閲覧可能に
- 映画の感想投稿キャンペーンで「名前」「住所」など個人情報漏えい
- 上越市 就学相談説明会で申込者12人の個人情報が漏えい
- 「ぶいすぽっ!」漏えい問題、被害者の電話番号変更費用を負担 家の引越費用も - ITmedia NEWS
このようなGoogleフォームによる個人情報漏洩のリスクを減らすために、Apps ScriptでGoogleフォームの一覧を表示してリスクを確認できる、Googleスプレッドシートを作成しました。
![Apps ScriptでGoogleフォーム情報漏洩リスクを確認する方法](https://iwb.jp/wp-content/uploads/2024/06/checking-google-form-data-leakage-risk-with-apps-script.png)
作り方はまず、Googleスプレッドシートを開いて、「拡張機能 → Apps Script」でApps Scriptのエディタを表示します。
Apps Scriptのエディタが表示されたら、以下のコードを貼り付けて保存します。
function checkGoogleForms() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
const sheet = spreadsheet.getActiveSheet()
sheet.clear()
sheet.appendRow(['ファイル名', '回答リンク', '作成日', '自分以外に編集可能なユーザー', '一般的なアクセス設定'])
const headerRange = sheet.getRange('A1:E1')
headerRange.setBackground('#d9eaf7')
const files = DriveApp.getFiles()
while (files.hasNext()) {
const file = files.next()
if (file.getMimeType() === 'application/vnd.google-apps.form') {
const editors = file.getEditors()
const users = []
for (let i = 0; i < editors.length; i++) {
users.push(editors[i].getEmail())
}
const usersString = users.join(', ')
const permissionType = Drive.Permissions.list(file.getId()).permissions[0].type
const row = [file.getName(), file.getId(), file.getDateCreated(), usersString, permissionType]
const rowIndex = sheet.getLastRow() + 1
sheet.appendRow(row)
const range2 = sheet.getRange(rowIndex, 2)
const url = 'https://docs.google.com/forms/d/' + file.getId() + '/edit#responses';
const link = `=HYPERLINK("${url}", "${url}")`
range2.setFormula(link)
if (usersString) {
const range4 = sheet.getRange(rowIndex, 4)
range4.setBackground('#f4cccc')
} else if (permissionType === 'anyone') {
const range5 = sheet.getRange(rowIndex, 5)
range5.setBackground('#f4cccc')
}
}
}
}
Drive APIを使用しているので、サービスから「Drive API」の追加も必要です。
![Apps Script サービスを追加 Drive API](https://iwb.jp/wp-content/uploads/2024/06/checking-google-form-data-leakage-risk-with-apps-script-drive-api.png)
あとは実行するだけで、GoogleスプレッドシートにGoogleドライブ内に保存されているGoogleフォームの一覧が「ファイル名、回答リンク、作成日、自分以外に編集可能なユーザー、一般的なアクセス設定」の見出しと一緒に表示されます。
![Apps ScriptでGoogleフォーム情報漏洩リスクを確認する方法](https://iwb.jp/wp-content/uploads/2024/06/checking-google-form-data-leakage-risk-with-apps-script.png)
もしシークレットウィンドウで回答リンクをクリックして、回答のページが表示されてしまう場合は、第三者に回答を見られてしまう(個人情報が漏洩してしまう)Googleフォームです。
![Googleフォーム 回答ページ](https://iwb.jp/wp-content/uploads/2024/06/checking-google-form-data-leakage-risk-with-apps-script-answer.png)
「結果の概要を表示する」を有効にしたり、アクセス設定が「リンクを知っている全員」になってたりすると、回答が他の人にも見られてしまう可能性があります。
以下のリンク先のGoogleフォームのようにアクセス設定が適切であれば、第三者に回答が見られてしまうことはありません。(入力フォームが表示されます)
また、自分以外に編集可能なユーザーがいる場合はD列に表示されます。
すでに退職されている方や、一時的な編集者がD列に残っている場合は、個人情報漏洩のリスクを回避するために編集者権限を削除してください。
また、一般的なアクセス設定で「リンクを知っている全員」に設定されている場合はE列に「anyone」が表示されます。
![](https://iwb.jp/wp-content/uploads/2024/06/google-forms-awawa-leak-settings-explanation-enable-all-01.png)
Googleフォームで個人情報を記入する場合は、アクセス設定で「リンクを知っている全員」に設定する必要はないので、もし設定されている場合は必ず変更したほうが良いです。
「リンクを知っている全員」に設定していると、回答から個人情報が漏洩する可能性がありますので、必ず変更してください。