phpMyAdmin・MySQLの使用
修論のアプリ開発で,Client_IDのみのログインだと安全性に欠けるため,ID・Password欄を設けることにした.GPTに相談したところ,「パスワードはハッシュ化して,phpMyAdmin・MySQLから確認すればいい」とのことだが,MySQLのログイン時にさくらサーバーの管理ID等が必要なため,一時保留にした(TeraTermからサーバーにSSH接続が可能だが,どのみちMySQLが必要らしい).
mysql -u your_username -p
.csvファイルに書き込む場合
MySQL以外の方法として,.csvに直接書き込む方法もあるが,こちらは「セキュリティの脆弱性や,DLの危険性,同時書き込みの衝突」がある.セキュリティ面の対策として,下記のコードを同ディレクトリ内に置く,つまり「.htaccess で外部アクセスを遮断」しておくことで,外部からのDLを回避できるようだ(.csvに直接パスワードを付けようと思いついたが,こちらはその都度解凍処理が求められる).
//.htaccess で外部アクセスを遮断
<Files "users.csv">
Require all denied
</Files>
さらに,public_html の外に置いて,外部に公開するようのディレクトリと,非公開用のディレクトリに分けることで,外部からのアクセスを拒否することが可能.
//public_html の外に置く
├── public_html/ ← 外部に公開するファイル専用
│ ├── Shigeta/
│ │ ├── register_users_csv.php ← CSVデータを操作するPHPスクリプト
│ │ └── (その他の公開ファイル)
├── secure_data/ ← 非公開ファイル専用
│ ├── users.csv ← 外部からアクセスを拒否
│ └─ .htaccess ← このファイルを作成
└── (その他のファイル)
当初開発予定だったもの
ログイン画面・新規登録用の2つに分けて,新規登録者はこちらからcsvにどんどん書き込んでもらおうと考えていた.しかし,同時書き込み衝突の危険と,実験者側で事前に決めるという路線に変更.これから開発するものとしては,「ID・Pass」の入力欄を設けて,それをクリアした場合にClient_IDでディレクトリから画像を取り出すという仕様に変更する予定.となると,Client_IDはやはり紐づけして,パスワードをどうにかしてハッシュ化できるようにしないとだ.
あ,そうだ.以前作成したupload.phpが,「①Fitbitグラフの保存,②新規のみClient_IDに応じたディレクトリの作成」の機能を加えていたんだ.これに加えて,users.csvにID・パスワード(ランダムで4文字ずつ),Client_IDの関連付けて書き込んで保存すればいいんだ.Unityは,users.csvを参照して,IDを拾ってくる.これで自動化?

