タグ

ブックマーク / blog.64p.org (2)

  • [PHP] preg_replace における //e があぶない話 - tokuhirom's blog

    Malware Hidden Inside JPG EXIF Headers という話題がでていたので見てみたところ、単に preg_replace がセキュリティ上問題があるインターフェイスだという話であって、EXIF 云々は直接的に 関係がなく、釣りエントリであることが判明した。 preg_replace は第一引数に正規表現を渡すが、その際に外部からの入力をそのままわたすと危険という話。 なぜならば preg_replace は '/.*/e' のように、eval flag をわたすことができるからだ。 以下のコードをみよ。 <?php preg_replace('/.*/e', 'eval("echo 5960+3;")', ''); つまり、preg_replace($_POST['foo'], $_POST['bar'], '') のようなコードがあった場合、任意のコードが実行

  • TokuLog 改めB日記

    HTML の pre を折り返したい HTML の pre 要素を利用して表示させているときに、通常は長い行があっても折り返されない。 折り返したい場合は以下のようにする。 .wrap { white-space: pre-wrap; word-wrap: break-word; } gradle の detekt と detektMain の違い ./gradlew detekt では一件も検出されないが、detektMain だと検出されまくるという時がある。 一般的な checkstyle などのプラグインではcheckstyleMain は checkstyle をメインソースセットに対してだけ実行するという意味なので、checkstyleMain と checkstyleTest を足したものにだいたい等しいのだが、detekt の場合は違う。 detektMain/detekt

  • 1