タグ

tengに関するtsucchi1022のブックマーク (7)

  • ユーザ由来の構造化データによるSQLインジェクション | tech - 氾濫原

    Kazuho's Weblog: The JSON SQL Injection Vulnerability について。元記事をはっちゃめっちゃに要約すると SQL::Maker にユーザから受けとったデコード済み JSON をそのまま突っ込むと SQL インジェクションになる場合がある SQL::Maker 側でそういったことが起こらないように strict オプションをつけたから、できればそっち使え 別に SQL::Maker に限らないから気をつけろ という話っぽい。来であればユーザ入力をタイプチェックをすべきだけど、クエリビルダレベルでも、脆弱性にならないようにもうちょっと考慮してもいいよねという趣旨かな… strict モードは非互換なので、既存のコードが動かなくなる可能性があるようです。 Teng での対応 Teng を使っているとデフォルトで SQL::Maker がクエリビ

  • Teng::Plugin::RowObjectCreationSwitcherが便利な件 | おそらくはそれさえも平凡な日々

    https://metacpan.org/release/Teng-Plugin-RowObjectCreationSwitcher @tsucchi さんに上げてもらったのでその話。 追記 注意 tokuhiromに意見をもらって0.02でインターフェースが変わりました。 temporary_suppress_row_objects_guard( 1 / 0 ) を新設 (dis|en)able_row_object を廃止 ガードオブジェクト受け取らないとエラーになるように 「こういう$tengみたいなグローバルなオブジェクトの内部を一時的に変えるみたいなのはやらないほうがいいですね!」 と、tokuhiromに言われており、実際そうなので、やるなら自己責任で気をつけて使いましょう。 言われてみると、$teng->suppress_row_objectsがそもそもrwなのが怖い感じがし

    Teng::Plugin::RowObjectCreationSwitcherが便利な件 | おそらくはそれさえも平凡な日々
    tsucchi1022
    tsucchi1022 2013/10/01
    紹介記事書いてもらった songmu++
  • SQL::Translator::Producer::Tengを書きました | おそらくはそれさえも平凡な日々

    https://metacpan.org/module/SQL::Translator::Producer::Teng TengのSchemaは手で書くのがタルいので、Teng::Schema::DumperなりTeng::Schema::Loaderなりを使ってごにょったりしていたのですが、無理やりだし、自動生成すればいいよねとは思っていたので、書きました。 Kyoto.pmでも先日のYAPC::Asiaでも「SQL::Translator::Producer::Tengみたいなのがあればいいかもしれないけど特に不便を感じてないからやってない」とか言っていたのですが、書いてみたら案外サクッとかけたので、CPANizeした次第。 以下の様なSQLファイルがあったとして、 CREATE TABLE `user` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT

    SQL::Translator::Producer::Tengを書きました | おそらくはそれさえも平凡な日々
    tsucchi1022
    tsucchi1022 2013/09/30
    よさそう
  • おそらくはそれさえも平凡な日々: Teng::Plugin::SearchJoinedとSQL::Maker::JoinSelectとKyoto.pmの話

    https://metacpan.org/module/Teng::Plugin::SearchJoined https://metacpan.org/module/SQL::Maker::Plugin::JoinSelect N+1問題という近年まことしやかに語られるようになった言葉があります。当たり前の事象に大げさに名前をつけるのどうなのかと思ったりもするわけですが、名前が付いていると案外説明に便利だったりして「名前重要」だなーとか思ったり思わなかったりするわけです。 最近はTengを便利に使わせてもらっているわけですが、Tengはシンプルな分、何も考えないで使うとN+1問題が多発してしまいます。そう言う思想なわけです。 クエリ数を抑えるためにJOINしたクエリを投げたくなるわけですが、そうなると自分で投げるしか無くて、それはまだいいとしても、普段Rowオブジェクトを使い慣れているゆる

    tsucchi1022
    tsucchi1022 2013/07/09
    なるほど。複数の Row オブジェクトをいっぺんに返すのか
  • Teng::Plugin::LookupPK - heboi blog

    Tengには機能は制限されているけれどもsingle()よりも速いlookup()が使える、Teng::Plugin::Lookupていうプラグインが付属しているのだけれども、それよりもさらに機能を制限して速くしたlookup_pk()ってのを実装してみました。 一旦Teng体をforkしたものにコミットしてみたけど、多分独立したモジュールになると思います。 __PACKAGE__->load_plugin('LookupPK'); としてあげて $teng->lookup_pk(user => 1); # SELECT * FROM user where id = ? LIMIT 1 [1] のように使います。primary key名がidじゃない場合は __PACKAGE__->load_plugin('LookupPK', {pk => 'gid'}); などのように変更できます。

    Teng::Plugin::LookupPK - heboi blog
  • Teng vs DBIx::Skinnyベンチマーク 2012 - heboi blog

    nekokakさんが以前TengとDBIx::Skinnyのベンチマークとってみたでとっていたのですが、1年半以上経っていてその後Tengはバージョンアップを重ねていますので、改めてとってみました。 ベンチマークスクリプトはnekokakさんのものをもとに少し改造してtestもつけたりしました。 結果はこちら。 はやくなってますね :)

    Teng vs DBIx::Skinnyベンチマーク 2012 - heboi blog
  • Kyoto.pm #01 に参加してきた - blog.nekokak.org

    第一回のKyoto.pmに帰省を兼ねて参加してきました。 自分の発表資料は以下 http://nekokak.org/presen/kyoto01/ ORMとはといったような概論的なはなしをしながら、 最後は一緒にTengを開発しませんか? といったかんじ。 プレゼン中でも触れていますが、今あまり(ほとんど)Tengの開発に注力できないので 新機能だったり、リファクタリングだったりが滞っています。 DBIx::SkinnyもTengも多くの人に使われるようになってきているので、 使っている人からの開発リソースの還元を受けたいなーとか 開発に関わりたいと思っているような人をうまく取り込みたいなーと考えています。 プレゼン後の懇親会で、Tengは必要最低限の機能にわざと絞ってるのに、 新機能開発ってどういうこと? という質問を受けたのですが、Tengは自分の理想を完璧に形にできているわけではな

  • 1