卒研メモ:SSL Server Testの結果

 以前にも書きましたが,本研究室のこのサーバはLet’s Encryptを使って暗号化対応しています。従って,https://cs-tklab.na-inet.jp/ でアクセスしてもらうのが基本となっています。

 Webサーバの暗号化対応状況は,Let’s Encryptがお勧めのSSL Server Testで確認することができます。Appleがアプリの通信にTLS 1.2の暗号化を義務付けというニュースがあり,気になったのでテストしてみました。以下,このサーバに対して実行した結果を掲載しておきます。長いので三分割してあります。

 ランクはC。どうやらSSLv3を有効化しているせいでinsecureと判断されているようです。ということでこちらのサイトの設定を参考にしてApacheの設定を変え,SSLv3,RC4, DHは無効化して再度チャレンジしてみましたところ,A評価にアップしました。強制的にhttps接続をさせるとA+になるようですが,今のところそこまでは対応していません。

この結果,Internet Explorer 6 on Windows XP環境下では暗号化接続が出来なくなってしまいましたが,そんな環境を使っている方が悪いということで今後は無視します。ということで,暗号化が必須とされるサービスと連携する時にはhttpではなくhttpsを使って下さい。

卒研メモ:2017年度卒業研究テーマについて

 3年生は就職活動と卒業研究について考える時期になってきました。本研究室では例年こんな感じのスケジュールになりますので,予めお知らせしておきます。

 卒業研究については,今のところ殆どの方々は何らかのサービスを提供するWebアプリケーション開発を行う予定ですが,最近テーマが陳腐化して正直詰まんない訳です。毎年卒研を指導しているWeb使用歴二十数年の年寄りを満足させるのは難しいとは思いますが,単純な「スケジューラ」「掲示板」「日記帳」「料理レシピ管理」というテーマはそろそろ勘弁してほしいというのが偽らざる心境です。

 とはいえ,皆様方のように人生経験・Web経験が不足気味の方々に斬新なアイディアだけ求めるのは酷というもの。卒業研究の目的は,自主的な学習を行って自身の技量を高めることが第一の目的なので,アカデミックなお約束事を守って頂ければ何をやってもらってもいいわけです。とはいえ「それは世の中に既にあるものと何が違うの?」という疑問は,アプリケーション開発であれば必ず出てくるものなので,それに対して何らかの回答は用意しておく必要はある訳です。「なんとなく面白そうだし勉強にもなると思って作りました」という,「ああそうですか」で終わってしまう定型回答は最終手段として取っておくことにして,それなりに新規なところ,工夫したところ,既存サービスと比べて異なるところを,最初から提示しておくのが親切というものです。

閑話: ちなみに「スマホ対応」は当たり前なので,Bootstrapのような簡単にresponsive design化できるフレームワークを探して利用して下さい。もちろん独自実装responsiveでも可。

 ということで,当方が考える,「この辺の工夫があったらアピールできるのでは?」という項目を書き出してみることにします。大別すると「セキュリティ」「アミューズメント」「人工知能」の3つになります。このうちセキュリティ,人工知能については私もよく分かっていないので,勉強しながら何ができるかを探っていきたいところです。

  1. セキュリティ・・・本研究室のWeb教材はセキュリティの観点が抜け落ちており,あまり頑健なシステムにはなっていないという弱点がある。その点を補強するWebアプリケーション開発,教材のブラッシュアップができないか? あるいは,「頑健なパスワードを作る」アプリケーション開発なども良い。とっかかりはIPAやJPCERT等が良い。
  2. アミューズメント・・・オープンキャンパス,大学祭で展示して遊んでもらうゲームをWebアプリとして構築する。
  3. 人工知能・・・Deep Learningが大流行りの昨今,NVIDIA DIGITSなるWeb UI付きのツールが簡単にインストールできる。これをカスタマイズして別の用途に利用できるようにならないか?

 この3つのキーワードを含むようなテーマだと,少しは感心してもらえるのではないでしょうか? 通り一遍のありふれたWebアプリを作るだけでなく,何かこの3つに限らず独自に考えた題材が盛り込まれた卒業研究テーマをこの年末にでも考えておいて下さい。 

卒研メモ: XMLHttpRequestを直接使ったAjax対応Drag&Dropファイルアップロード

 まずjQueryの手助けなしに,JavaScriptでAjaxを使うためのXMLHttpRequest関数を直接呼び出してDrag&Dropファイルアップロード機能を実装してみました。

動作は下記のビデオを参照して下さい。

 使用したものは,file_api_upload.htmlとupload.phpです。

file_api_upload.html:
file_api_upload_html

upload.php:
upload_php

使用方法は下記の手順となります。

  1. file_api_upload.htmlとupload.phpを同じディレクトリ(フォルダ)に入れておき(以下semiとします),”upload_files”というアップロードファイル格納用ディレクトリも掘っておく。
  2. File API使用可能なブラウザからhttp://localhost/semi/file_api_upload.htmlにアクセスし,DropエリアにファイルをDrag&Dropする
  3. アップロードボタンを押すとアップロード開始。画像ファイルは自動的に表示される。

 これを改変して,Drag&Drop直後にアップロード開始となるバージョンも作ってみましょう。file_api_upload.htmlの改変のみで可能なはずです。実行例は下記の動画をご覧下さい。