はじめまして、鹿児島大学のロバート・ファウザーです。
鹿児島大学教育センターで開発した、「Moodle Lite」という携帯電話向けのMoodle用プログラムを公開します。ほとんどの日本の携帯電話(UTF-8対応のもの)で動作確認しました。また、iPod touch, スマートフォンの動作確認しました。日本の携帯電話を配慮して、軽さと見やすさを中心として開発しました。Moodle 1.6x対応です。
.tarのダウンロードまた、これからの情報は次のリンクにあります。
http://www.kic.kagoshima-u.ac.jp/moodle/mod/forum/view.php?id=5216
今度ともよろしくお願いします。
ファウザー先生,ありがとうございます!
以下は別のところにも書いたことですが,再掲します:
さきほどからソースを読んでいるのですが,LDAPに対応していないようなので,うちで使うには少し手を入れなければならなさそうです。
また,私がよく理解していないのかもしれませんが,携帯版でないもともとのMoodleまでCookieless Sessionsになってしまうように読めたので,セッションハイジャック対策のためクッキーだけを使うというMoodleのセキュリティが多少甘くなってしまうかもしれないように思います。この部分は直せるかもしれません。
パスワード入力にhttpsを使うという基本方針との兼ね合いもあり,少し調査を要するところがいくつかありそうです。
以下は別のところにも書いたことですが,再掲します:
さきほどからソースを読んでいるのですが,LDAPに対応していないようなので,うちで使うには少し手を入れなければならなさそうです。
また,私がよく理解していないのかもしれませんが,携帯版でないもともとのMoodleまでCookieless Sessionsになってしまうように読めたので,セッションハイジャック対策のためクッキーだけを使うというMoodleのセキュリティが多少甘くなってしまうかもしれないように思います。この部分は直せるかもしれません。
パスワード入力にhttpsを使うという基本方針との兼ね合いもあり,少し調査を要するところがいくつかありそうです。
一瞬,ドッキリしました. モバイルモードとはかぶっていませんね.
携帯電話,モバイル機器,PCという3つのスケールへの拡張が進み,これで大手を振って”さぁ,使いましょう!”と言えますね.
#さすがに第3世代の携帯電話にしないと出張先で情報収集もできないので,Softbank 922SHに機種変更の予定です.モバイルモードの確認のためには,もっと一般的な携帯電話にするべきなのかも知れませんが,自腹ですので妥協はしたくない.
モバイルモードはコースフォーマットの内,トピックス,ウィークリー,ウィークリー(CSS),LAMSフォーマットへの対応が終わりました.残すはscormとsocialです.一通り終わったら,まとめてパッチを公開します.以前に公開した部分も随分と手直しをしてしまいましたので.(次は,diffで公開します)
Moodle Liteは,Moodleへのパッチではなく,Moodleのデータベースを利用する独立したシステムで,機能は限られていますが,非常に軽いのが特徴です。そのため,パソコンを使っている人でも,通常のMoodleより軽いこちらを好まれるかたもおられると聞いています。
クッキーを扱えない携帯でも何とかそれらしく振る舞うように工夫されています。それだけに,よく注意してコードレビューしないと,他人になりすまして小テストの画面に直接入れてしまうといったことができるのではないかと,ちょっと心配しているところです。
インデントのないコードを整形しながら読んでいたのですが,ちょっと疲れてきました。
クッキーを扱えない携帯でも何とかそれらしく振る舞うように工夫されています。それだけに,よく注意してコードレビューしないと,他人になりすまして小テストの画面に直接入れてしまうといったことができるのではないかと,ちょっと心配しているところです。
インデントのないコードを整形しながら読んでいたのですが,ちょっと疲れてきました。
ご迷惑をおかけしております。また、早速利用していただきありがとうございます。
ファウザー先生と一緒に「Moodle Lite」を開発させていただいた大園と申します。
> インデントのないコードを整形しながら読んでいたのですが,ちょっと疲れてきました。
SQL文を見やすくするために、ヒアドキュメント形式で変数に代入しましたので、
読みにくいかもしれません。申し訳ありません。
> さきほどからソースを読んでいるのですが,LDAPに対応していないようなので,うちで使う
> には少し手を入れなければならなさそうです。
おっしゃるとおり、LDAPには対応しておりません。
> また,私がよく理解していないのかもしれませんが,携帯版でないもともとのMoodleまで
> Cookieless Sessionsになってしまうように読めたので,セッションハイジャック対策のため
> クッキーだけを使うというMoodleのセキュリティが多少甘くなってしまうかもしれないように思
> います。この部分は直せるかもしれません。
こちらもおっしゃるとおりだと思います。Moodleのconfig.phpにCookieless Sessionsの
設定をしていますので、セキュリティは甘くなっていると思います。
Moodle Liteから読み込んだときにだけ、有効にするように対応していきたいと思います。
> パスワード入力にhttpsを使うという基本方針との兼ね合いもあり,少し調査を要する
> ところがいくつかありそうです。
携帯のSSLでの通信が証明書の問題でうまくいかない機種もあることから、今回は
実装を見送りました。
Moodle Liteは、機能の実装を最優先で開発いたしましたので、おっしゃるとおり
セキュリティ的に甘い部分も多々あるかと思います。
今後も改良を加えていきたいと思っておりますので、いろいろご教授いただければ
助かります。
ファウザー先生と一緒に「Moodle Lite」を開発させていただいた大園と申します。
> インデントのないコードを整形しながら読んでいたのですが,ちょっと疲れてきました。
SQL文を見やすくするために、ヒアドキュメント形式で変数に代入しましたので、
読みにくいかもしれません。申し訳ありません。
> さきほどからソースを読んでいるのですが,LDAPに対応していないようなので,うちで使う
> には少し手を入れなければならなさそうです。
おっしゃるとおり、LDAPには対応しておりません。
> また,私がよく理解していないのかもしれませんが,携帯版でないもともとのMoodleまで
> Cookieless Sessionsになってしまうように読めたので,セッションハイジャック対策のため
> クッキーだけを使うというMoodleのセキュリティが多少甘くなってしまうかもしれないように思
> います。この部分は直せるかもしれません。
こちらもおっしゃるとおりだと思います。Moodleのconfig.phpにCookieless Sessionsの
設定をしていますので、セキュリティは甘くなっていると思います。
Moodle Liteから読み込んだときにだけ、有効にするように対応していきたいと思います。
> パスワード入力にhttpsを使うという基本方針との兼ね合いもあり,少し調査を要する
> ところがいくつかありそうです。
携帯のSSLでの通信が証明書の問題でうまくいかない機種もあることから、今回は
実装を見送りました。
Moodle Liteは、機能の実装を最優先で開発いたしましたので、おっしゃるとおり
セキュリティ的に甘い部分も多々あるかと思います。
今後も改良を加えていきたいと思っておりますので、いろいろご教授いただければ
助かります。
開発者様をお呼び出ししてしまったようで,すみません。
具体的には
//-- 直接開かれた場合=>レジスト変数の確認 --//
if(isset($_SESSION['userid']) || isset($_GET['userid']) || isset($_POST['userid'])) {
/* 認証 */
}
else { /* 未認証 */
header("Location: ../index.php"); /* ログインページへフォワード */
exit;
} /* endif */
のようなところがたいへん気になりました。
メールアドレスのチェックですが,
if (ereg("[a-zA-Z0-9_.¥-]+@[a-zA-Z0-9_.¥-]+",$mailaddress)){
の全角¥は間違いでしょうか。
具体的には
//-- 直接開かれた場合=>レジスト変数の確認 --//
if(isset($_SESSION['userid']) || isset($_GET['userid']) || isset($_POST['userid'])) {
/* 認証 */
}
else { /* 未認証 */
header("Location: ../index.php"); /* ログインページへフォワード */
exit;
} /* endif */
のようなところがたいへん気になりました。
メールアドレスのチェックですが,
if (ereg("[a-zA-Z0-9_.¥-]+@[a-zA-Z0-9_.¥-]+",$mailaddress)){
の全角¥は間違いでしょうか。
ご指摘ありがとうございます。
> //-- 直接開かれた場合=>レジスト変数の確認 --//
> if(isset($_SESSION['userid']) || isset($_GET['userid']) || isset($_POST['userid'])) > {
> /* 認証 */
> }
> else { /* 未認証 */
>
> header("Location: ../index.php"); /* ログインページへフォワード */
> exit;
> } /* endif */
Cookieless Sessions を利用して小テストモジュールを実装したので、
小テストモジュールの認証チェックのみ、動作優先でやむをえなく上記のようにいたしました。
これだとたしかに、GETやPOSTを利用して悪用される(なりすまされる)可能性はあります。
いい方法がないか考えてみたいと思います。
> メールアドレスのチェックですが,
> if (ereg("[a-zA-Z0-9_.¥-]+@[a-zA-Z0-9_.¥-]+",$mailaddress)){
> の全角¥は間違いでしょうか。
申し訳ありません。間違って「全角」になってしまっていたようです。
おっしゃるとおり「半角」です。
携帯のメールアドレスを登録するために、チェックをゆるくしてあります。
「..」や「-_-」など、携帯のメールアドレスにありがちだけど、本当は
あってはならないものまで許すようにしています。
お気づきの点があれば、なんなりとご指摘いただければ助かります。
> //-- 直接開かれた場合=>レジスト変数の確認 --//
> if(isset($_SESSION['userid']) || isset($_GET['userid']) || isset($_POST['userid'])) > {
> /* 認証 */
> }
> else { /* 未認証 */
>
> header("Location: ../index.php"); /* ログインページへフォワード */
> exit;
> } /* endif */
Cookieless Sessions を利用して小テストモジュールを実装したので、
小テストモジュールの認証チェックのみ、動作優先でやむをえなく上記のようにいたしました。
これだとたしかに、GETやPOSTを利用して悪用される(なりすまされる)可能性はあります。
いい方法がないか考えてみたいと思います。
> メールアドレスのチェックですが,
> if (ereg("[a-zA-Z0-9_.¥-]+@[a-zA-Z0-9_.¥-]+",$mailaddress)){
> の全角¥は間違いでしょうか。
申し訳ありません。間違って「全角」になってしまっていたようです。
おっしゃるとおり「半角」です。
携帯のメールアドレスを登録するために、チェックをゆるくしてあります。
「..」や「-_-」など、携帯のメールアドレスにありがちだけど、本当は
あってはならないものまで許すようにしています。
お気づきの点があれば、なんなりとご指摘いただければ助かります。
どうもありがとうございます。
さきほど書き足りませんでしたが,eregの[]の中は\も含めてほとんどの文字がそのままの意味を持つので,単に¥を外せばいいと思います(\に変えるのではなく)。
携帯サイトでのセッション管理は,ややこしそうですね。クッキーだけでなく,POSTも必ずしもうまくいかないとなると,GETしかないのでしょうけれど,URLに
?PHPSESSID=....
というのを付けてセッション管理をすると,フォーラムなどに外部へのリンクをポストしておき,それをクリックしたらREFERERを調べることにより他人のセッションを乗っ取ってしまうということが簡単にできそうです。
私は携帯といえるものを持っていないので(アドエスなら持ってます),このあたりについてはよくわからないのですが,どなたかご教示ください。Moodle for Mobilesなどではどうなっているのでしょうか。白井先生のものはフルブラウザ限定なので問題ありませんね。
さきほど書き足りませんでしたが,eregの[]の中は\も含めてほとんどの文字がそのままの意味を持つので,単に¥を外せばいいと思います(\に変えるのではなく)。
携帯サイトでのセッション管理は,ややこしそうですね。クッキーだけでなく,POSTも必ずしもうまくいかないとなると,GETしかないのでしょうけれど,URLに
?PHPSESSID=....
というのを付けてセッション管理をすると,フォーラムなどに外部へのリンクをポストしておき,それをクリックしたらREFERERを調べることにより他人のセッションを乗っ取ってしまうということが簡単にできそうです。
私は携帯といえるものを持っていないので(アドエスなら持ってます),このあたりについてはよくわからないのですが,どなたかご教示ください。Moodle for Mobilesなどではどうなっているのでしょうか。白井先生のものはフルブラウザ限定なので問題ありませんね。
皆様、
鹿児島大学のファウザーです。奥村先生の貴重なコメントとその他の修正を含んだアップデートされた「Moodle Lite 1.0.1」を公開します。
鹿児島大学のファウザーです。奥村先生の貴重なコメントとその他の修正を含んだアップデートされた「Moodle Lite 1.0.1」を公開します。