指導方法教材

PHP脆弱性問題からみるプログラミング教室での指導のあり方

PHP脆弱性問題からみるプログラミング教室での指導のあり方

当センターのモデル教室である『未来学校プログラミング教室』では、本格的なシステム開発を教えています。
ネットショップや動画サイトなどを、約4ヶ月間かけて生徒が開発しています。

これはかなり大変な学びですが、完成するときに生徒たちは本当に喜びます。何度も何度もエラーが出て修正を加えて、やっと完成したものなので、その分喜びは大きなものとなります。

しかし、勉強は完成して終わりではありません。作品の改善点を必ず考えてもらっています。その重要性が先日の出来事で証明されました。


PHPの脆弱性発覚とは

先日、プログラム言語であるPHPに重大な脆弱性が見つかり、10月21日に修正版が公開されました。
今回の問題について、高市総理も自身のXで大至急の対応を呼びかけました。

脆弱性の発覚により、現在も多くの企業がシステムを止めて改修作業を継続しています。
PHPは、Webサービスを動かすために使われるプログラミング言語であり、世界で約7割のWebサービスがPHPで開発されているようです。

今回発見された脆弱性はかなり深刻です。最近、日本企業の個人情報漏洩が相次ぎ、今回の脆弱性にも関係しているのではないかと私は思います。

※ちなみに、未来学校の生徒情報は紙で管理しています。住所や電話番号などの個人情報はネット上に保存しておりません。

プログラミング教育で心がけたいこと

プログラミング教育の話に戻ります。

未来学校の上級クラスでは、PHPによるシステム開発を教えています。
開発方法を学ぶのは当たり前ですが、実は、その後の学びも重要です。自分が作ったシステムの改善点を探してもらいます。使いやすさの視点から探してもいいし、機能の充実さから考えてもいいことにしています。

しかし、一番重要な視点は、セキュリティの角度から考えることです。データを正しく保管する方法、ハッキングされないようなコードへの修正など、開発の保守に当たる学びを授業で生徒と話し合いながら教えます。

最初からすべての問題を予測するのは難しいです。しかし、開発者の立場ではなく、利用者の立場になって、使ってみると、いろんな問題を見つけることができます。
そのために、生徒が開発を完成したシステムやアプリをもう一度見直す作業を重視しています。

例えば、購入数を入力して計算するネットショップの課題では、プログラムを完成した生徒に、購入数に何も入れなかったらどうなるかを考えてもらいます。使う人は、入力を忘れることもあります。その場面を想像すると、なぜ購入数のチェックが必要なのかがわかります。チェック処理がなければ追加してもらいます。

情報を守る仕組みも学びます。

授業では、パスワードをそのまま保存しないための処理を追加するよう伝えます。パスワードの暗号化は、多くの種類がありますが、元に戻せない形に変換する「ハッシュ化」を使ってもらいます。暗号化だけですべて安心とは言いきれないからです。

また、会員のみアクセスできるページの処理に、ログインしているかどうかを確認する処理を入れておくことも重要です。この処理の大切さは、生徒が気づいていないことが多いのです。

このように、生徒と一緒に利用場面を想像しながらセキュリティの指導を行います。さらに、いつ、誰が、どこにアクセスしたかを記録するログを残す工夫も指導します。

これらの問題点はプログラミングの文法的な間違いではありません。ですので、画面上にエラーは出ません。生徒はシステムが動いたので完成したと勘違いしやすいです。そこで、私は、生徒に自分のプログラムを説明してもらい、問題点に気づいてもらっています。

使う場面を想像して、問題を見つけ、解決する、その練習を、一つひとつの制作の中で重ねています。自分で考えて行動する力は、こういう地道な経験から身につくと私は思います。

未来学校では、これからも子どもたちの「作りたい」「もっとよくしたい」という気持ちを大切にし、楽しく学びながら成長できる授業を提供していきます。

img_avater_nakayama

中山 涼一

こどもICT教育支援センター センター長

2014年に関西初のこども向けプログラミング教室「未来学校プログラミング教室」を創設。800名以上の指導実績を誇るプログラミング教育のスペシャリスト。

プロフィール