タグ

ブックマーク / unageanu.hatenablog.com (5)

  • XSSの攻撃手法いろいろ - うなの日記

    html5securityのサイトに、XSSの各種攻撃手法がまとめられているのを発見せり!ということで、個人的に「お!」と思った攻撃をサンプルつきでご紹介します。 1. CSS Expression IE7以前には「CSS Expressions」という拡張機能があり、CSS内でJavaScriptを実行できたりします。 <div style="color:expression(alert('XSS'));">a</div> 確認 @IT -[柔軟すぎる]IEのCSS解釈で起こるXSS で詳しく解説されていますが、CSSの解釈が柔軟なことともあいまって自前で無害化するのはなかなか困難。以下のようなコードでもスクリプトが実行されてしまいます。 <div style="color:expr/* コメントの挿入 */ession(alert('XSS'));">a</div> 確認 <div s

    XSSの攻撃手法いろいろ - うなの日記
  • 2007-07-29

    JavaScriptで使えるDIコンテナはないかなとGoogleで10分だけ探したけど見つからなかったので、作ることにしました!(予定) 何に使うの? MVCでUIを作ると、各レイヤー間の依存関係が何気に複雑になりがちです。 要素のイベントハンドラとコントローラの関連付けとか(View-Controllerの関連付け) モデルの変更を捕捉してUIを更新とか(View-Modelの関連付け) このあたりを一手にやってくれるコンテナがあったら、使えるかなと思うわけです。 コンセプト 超軽量。 計画 基線、Guice風で。 型がないので、名前ベースでバインディング。 プロパティインジェクションのみサポート。 コンストラクタインジェクションはできなくはないけどあまり使い道なさそう。 メソッドインジェクションは・・・。getXX,setXXとかいちいち書かないよね? AOPも使えるようにする。 ア

    2007-07-29
  • Sinatraで遊んでみる - うなの日記

    Sinatraは、Rubyで簡単にWebApplicationを作成できるDSL(ドメイン特化言語)です。 インストール $ gem install sinatra シンプルなサンプル 以下は、"/"にGETでアクセスされた場合、"Hello World"を返すWebサーバーを起動するだけの単純なサンプルです。 require 'rubygems' require 'sinatra' # "/"にGETでアクセスされた場合、"Hello World"を返す。 get( "/" ) { 'Hello world!' } 起動して、以下のURLにアクセスすれば http://127.0.0.1:4567/「Hello world!」が返されてくるはず。ログをみる限りでは、内部的にはWebrickを利用しているみたい。また、デフォルトでは、Daemonにはならないようです。 portを指定する

    Sinatraで遊んでみる - うなの日記
    asip
    asip 2009/05/19
  • Jなんとかメールを送信するRubyスクリプト - うなの日記

    Jなんとかメールを送信するRubyスクリプトです。 使い方 client = JxxxClient.new( "<接続先ホスト>", "<ユーザー名>", "<パスワード>" ) client.send_mail("<送信先>", "<タイトル>", "<文>") これで、リリース連絡とか動作確認回覧を自動送信するわけですよ。 依存モジュール 例によってhttpclientを利用しています。以下のコマンドを実行してインストールしてください。 gem install httpclient --source http://dev.ctor.org/download/ 実装 Webアプリの方に接続して送信します。 送信先ユーザーは","区切りで複数指定できる(はず) 異常系処理は適当です。(認証エラーは試したけど、他は未確認。あんまり試すと怒られそうだし。) カイランとかシンテンとかはもうちょ

    Jなんとかメールを送信するRubyスクリプト - うなの日記
    asip
    asip 2009/03/29
  • メソッド実行結果をキャッシュする - うなの日記

    Rubyオブジェクトのメソッド実行結果をキャッシュするユーティリティを書きました。 メソッドインターセプタで実装しています。任意のクラスのメソッド実行結果を透過的にキャッシュ可能にします。 キャッシュはYAMLファイルに記録されます。 require "fileutils" require 'file-lock' require 'kconv' require 'yaml' module Cache # # メソッドの実行結果をYAMLファイルにキャッシュする # delegate 実行結果をキャッシュするオブジェクト # enable キャッシュを利用するかどうか。 # range キャッシュの有効期限。秒で指定 # cache_file キャッシュファイル # regex キャッシュ対象メソッド # class YAMLCache def initialize(delegate, en

    メソッド実行結果をキャッシュする - うなの日記
    asip
    asip 2008/08/15
  • 1