PHPとセキュリティのレポート講評
5年生の前期実験で「PHPとセキュリティ」のテーマについて、レポートの採点を行った。
以下に、レポート記載での注意点や減点評価を行なったポイントをあげる。
レポートの記載書式について
- 電子レポート提出でも所属や報告者の記載をつけること。
今回は、遠隔実験でPDFファイルのアップロード提出であったため、表紙のつけ忘れなどが見られた。印刷媒体で残す可能性を考慮し、文章内に所属・出席番号・氏名なりの記入は必須。 - 図番号・表番号を必ず引用すること。
実験結果に図番号や表番号をつける習慣はみなさんついているが、本文中で必ず図番号や表番号を引用すること。前表によれば…はNG。「図1をみると…」「(表1参照)」などをつけること。図表は配置の都合で本文とは別のページに記載することもあるので、異なるページに配置されても、わかるように記載する必要がある。 - 章・節のインデントはしない。
今回は減点対象としていないが、卒業論文や卒研中間報告では、節や小節でインデントをしないこと。
特に、2段組みをする文書の場合、インデントが入るとただでさえ狭い1行が、スカスカになる。1. 論文書式ではダメな書き方 □この実験は... □のようなインデントは不要!! □...であった。 □1.1 背景 □□この問題の背景として... □□1.1.1 なんとかかんとか □□□なんとかかんとか
レポートの考察内容について
- PHPのプログラムの改良で、<input … maxlength=”xx”>とか、<input type=…> とか、<input … pattern=”xxx”>をとるといった考察があったが、これは不十分。例えば、Webページの HTML を、自分のサイトにコピーして、maxlenthやpatternを削除したページを作ってそこからPHPにデータを送ることで、相変わらずセキュリティの問題を引き起こすことが可能。HTMLのページを偽装しなくても、プログラムからphpに対して直接データを渡すこともできる。
このため、送られてくる入力値のチェック(一般的にはサニタイジングと呼ばれる)は、php側でも十分に行う必要がある。 - password の管理については、/etc/shadow ファイルの話までしか調べていない考察があった。
passwdコマンドは、SUID の説明と、その機能「一時的にpasswdコマンドの所有者rootの権限を借りる」の説明がないと減点とした。
考察のヒントに記載した、自分のパスワードが変更できるのなら/etc/passwdへの書き込み権限があるはず…と同じで、自分のパスワードを変更可能なら/etc/shadowに書き込み権限がある…という話になってしまうから。
(追記)
レポートの採点結果つけたよ…とTeamsで伝えたら、ゾロゾロと自分の点数を聞きにくる人多数。いつも、レポート返却しても教室に放置されてるし、他の先生の評価で平均されるから、あまり気にしないと思ってた。