2015年1月12日月曜日

【なでしこ】httpdなDLL

また間が空いてしまったヾ(;´▽`A``。さて、なでしこのGUIをなんとかしたいと思って
始まったんですが、最終的にはローカルWebサーバ(httpd)を実装してこれをDLLに
して、なでしこからこれを使えば、自分で作ったHTMLをローカルに閉じた状態で、
WEBブラウザに表示できそうです。

その際、やっぱり多少セキュリティーは考えとかないとマズそうなことが分かりました。

・なでしこ側ではファイルの操作などなんでも出来ちゃうので、下手にこのDLLを
 通してなでしこにアクセスされるのはダメ

 →ローカルなのでアドレスはhttp://127.0.0.1/となるけど、たとえば別のインターネット
  サイトから表示させたリンクにこのアドレスが指定されていると、PCが攻撃されて
  しまう。

・クロスサイトスクリプティング(XSS)には対応しておいたほうが良い。

 →FORMの入力に変な入力をされて、それをそのまま表示してしまうと、ローカルな
  データベースに不正にアクセスされてしまうかもしれない。インジェクション関係は
  対応は必要そう。

・クロスサイトリクエストフォージェリ(CSRF)には対応しておいた方が良い。

 →アプリで使うローカル用のHTMLを偽装されて、それを表示したら変なスクリプトが
  走るようなことがあってはダメ。

DLLがそのアプリ作者の目的どおりに使用されていることを確認するためには
最低限、Basic認証ぐらいは入れておいたほうがいいかな…と考えてます。
本当はブログのコメント各時みたいに、画像でランダムな4桁の数字入力求める
のがいいかも知れないけどなあ。


httpのプロトコル自体は、実はそんなに難しくなくて、ローカルでしか使わないから
IPv4に限定してTCP/IP上でデフォルト80番ポートで文字列通信するだけ。リクエスト
で使うメソッドも少ないから、まあ頑張れば実装できそうかな。

なでしことのインターフェースは

・初期化・終了関係
・任意のデータの送信(HTMLファイル、テキスト、画像ぐらいかな?)
・ブラウザ側でフォーム入力がありSubmitされた場合のGET/POSTされた
 要素のイベント

ぐらいでしょうか。