Archive for the ‘ 開発ブログ ’ Category

XSSって怖ぇ~~

とあるサイトでXSSができてしまうことを偶然発見しました。

ところが普段私が使ってるChromeだとブロックしてくれるらしく、スクリプトの実行まではされませんでした。そこで他のブラウザではどうなってるのだろうと思って調べてみました。

調査結果

ブラウザ ぜい弱性の種類 調査結果
Chrome 4.0.249.78 URL OK
From OK
IE8 URL OK
From NG
FF3.6 URL NG
From NG
Safari URL NG
From NG

…Chorme最高!どっちの場合もちゃんとブロックしてくれました。FormのほうはURLの場合に比べて遭遇する可能性は少ないと思いますけど、たとえばFormに値を自動入力して、自動でポストしちゃうスクリプトをブックマーレットとして作ってTwitterのおかげで大活躍なURL短縮サービスかなんかで一見わからないようにしておけばURLと変わらなくなります。

まぁそもそもこういうぜい弱性を作っちゃう開発者が悪いのですが、安全なことにこしたことはありません。

ってことで、Chromeお勧めだよ!!爆速だよ!便利だよ!軽いよ!!(笑)

今後の方針。

一応進んではいるのですが亀のようなスピードです。。
今後の方針が見えなくなるといけないのでメモ代わりに更新します。

  • DLLプラグインによる機能拡張
    • メニューの追加
    • 画像フォーマット丸ごとの取り換え
      • 特殊な動作(境界線自動生成とか)をするチップを後から追加可能に
      • パレッドも何とかしてDLLに描画を任せたり、描画する順番を指定できるようにする。
    • DLL化することを考えて、BaseChipを組み上げる
  • 常にC#の特性を生かしたコードを書くように努力する(オブジェクト指向)
  • 単体でアニメするチップの追加
    • 某ツールではイベントとして表現するがイベントだと不要な更新処理も入るため重くなる。それが回避できるようになる。

DLLプラグインを導入しようと思ったのは大人の事情ってやつです。(まだ私は未成年ですが(笑)
今のまま公開すると某所から苦情がきてもおかしくないので… 。公開するものは後ろめたいものを完全に消した物にします。

境界線自動生成チップを標準搭載しなくなるので、機能としてはそこらへんに転がってるものと変わりなくなりますが

  1. .Netで書かれてる
  2. オープンソース
  3. ライセンスが緩め
  4. 機能拡張が半端なく強力

というものは少ないと思うので妥協することにしました。

と言いつつも、かなりハードルが高い気が(汗;
いままでDLLの動的ロードなんてやったことないし、プラグインが使えるようなアプリを作ったこともない。。
でもUndo、Redoと同じようにググってみたらサンプルがあるのでなんとかなりそうです。

まぁ何事もやってみなきゃ分からないので今日も前に進むことにします。

これはカオスすぎる…!

前回作の依存関係

これが電話線だったら、絶対転ぶ!!

VS2010Bata2を導入してみたので、最上級エディションにしか載ってないと思われる「アーキテクチャ->依存関係グラフの作成」をやってみました。対象はオールリライトする前のプロジェクトです!

…。ぽかーん… これはひどい!作った自分が言うのもなんだけど、依存しすぎだろこれは。

今書いているプロジェクトはこんなことにならないように心がけつつ作っていくことにします。

続きを読む

チップ描画基本フレームワーク2th完成

デバッグ画面

前回の移植なので、それほど苦労はせず

この前設計したクラスを使って通常チップを描画してみました。性質が違うチップでもBaseChipを通して操作すれば同じように扱えるのでデバッグも楽です。やっぱり機能ごとにクラスを分けることは大切なんだと思いました。たぶん追記で、境界線自動生成チップのほうも載せると思います。

構造大改革!

ここのところクラス設計をしていました。
といっても頭でただ単に考えて、コードを軽く打ち込んでこっちのほうがいいや、いやこれだと汚いだろ、ってな感じで進んだり戻ったりして設計しただけで、設計図(UML)は書けません… 。書こうとすると逆に混乱します。将来書けるようにならないとダメかなぁ。


マップ表示コントロール周辺クラスダイアグラム

マップ表示コントロール周辺クラスダイアグラム

見ての通りすべてのチップはBaseChipを継承しているので新しい動作をするチップを追加しようと思ったら、BaseChipを継承してクラスを作りTowDTIleの中の配列に登録するだけで追加ができます。

続きを読む