日常の錬金術師

日常の中にあるありとあらゆる錬金術を試し、その結果をレポートするためのブログ

小さな技術屋さんのセキュリティ

今日は全く知らなかったセキュリティについて学んだから

それについて書いていくよ!

 

大晦日につくった掲示板があって

備えている機能概要は

  • ユーザ登録をしないと掲示板がみれない
  • 一つの掲示板がチャット式になっている
  • 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した文字を戻すことかな

こんなもんで終わり!