今日は全く知らなかったセキュリティについて学んだから
それについて書いていくよ!
大晦日につくった掲示板があって
備えている機能概要は
- ユーザ登録をしないと掲示板がみれない
- 一つの掲示板がチャット式になっている
- mysqlを用いて投稿者や内容を管理
- sessionを使ってユーザネームを保存
という感じ
ここでセキュリティ的にダメだったのが
掲示板への投稿部分で
"insert into Comment (userid,text,date) values('" + request.session.userId + "','" + comment_str+"','"+date+"');"
のようにMySQL文を直書きした上に
投稿内容(赤字)部分にユーザが書けるようにしていたのですね
その対処法がescapeさんでした。
"insert into Comment (userid,text,date) values('" + request.session.userId + "','" + escape(comment_str)+"','"+date+"');"
上のように書くことでコマンドにつかう
_や'"が使えなくなるのでもう大丈夫!!
とおもいきや顔文字なども使えないことが・・・
なので次の課題はescapeした文字を戻すことかな
こんなもんで終わり!