タグ

2017年10月4日のブックマーク (3件)

  • ScalikeJDBC と SQL インジェクション - seratch's weblog in Japanese

    SQLInterpolation ScalikeJDBC の SQLInterpolation では以下のような形でクエリを書きます。 val input = "Chris" val (u, c) = (User.syntax("u"), Company.syntax("c")) val foundUser: Option[User] = sql""" select ${u.result.*}, ${c.result.*} from ${User as u} left join ${Company as c} on ${u.companyId} = ${c.id} where ${u.name} = ${input} """.map(User(u.resultName, c.resultName)).single.apply() String Interpolation に Type Dy

    ScalikeJDBC と SQL インジェクション - seratch's weblog in Japanese
  • Tomcatに見つかった3つの脆弱性について

    はじめに Apache Tomcatに立て続けに見つかったCVE-2017-12615~12617の3つの脆弱性は基的には同じ原因によるものでした。3つのうち2つは任意のJSPファイルをPUTリクエストでアップロードできてしまい、アップロード後にアクセスすることでJavaのコードが実行できてしまう、というパターンのRCE。残りの1つはJSPがそのまま静的ファイルとしてアクセス可能なためにソースコードが漏洩してしまう、というものです。 今回JPCERT/CCも注意喚起するなど、広く知られることになりましたが、一方でなかなかパッチが提供されないという状況にもなっています。今回はこの脆弱性についての調査を報告します。 readonlyパラメータとは何か JSPがアップロードできてしまうのはreadonlyパラメータがfalseになっている場合です。このパラメータはデフォルトでtrueであり、f

    Tomcatに見つかった3つの脆弱性について
  • present? と blank? が嫌い - eagletmt's blog

    params の中身のように入っているオブジェクトのクラスが事前に分からないものに対して空っぽい文字列の場合と存在しない場合を区別したくないときに限って blank? を使うのは分かるけど、 nil チェックをするために blank? を使ったり、配列が空かどうかをチェックしたいだけなのに blank? を使ったりすると、 blank? の挙動を正確に理解して nil と空配列を区別したくないから使っているのか、それとも nil がくるかどうか分からないので適当に防御的に blank? を使っているのか、 あるいは blank? しか知らないのかが読みとれずにめんどくさいと思うことがよくある。 かわりに empty? を使っていれば empty? を持っているオブジェクトは blank? を持っているオブジェクトより少ないので読み手に伝わる情報量が大きくなるし、 かわりに nil? を使っ

    present? と blank? が嫌い - eagletmt's blog