タグ

ブックマーク / blog.shin1x1.com (4)

  • パフォーマンスを意識して正規表現を書く - Shin x Blog

    正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。PerlRubyPythonJava、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ

    パフォーマンスを意識して正規表現を書く - Shin x Blog
    stealthinu
    stealthinu 2016/09/20
    正規表現の負荷を爆発させるような文字列を入れるReDOSという攻撃手法。trimするようなよく使う正規表現でも単純にすごく長い空白文字列でReDOS攻撃が行えてしまう。
  • PHPにおけるhttpoxyの対応 - Shin x Blog

    HTTP リクエストに任意の値をセットすることで、Web アプリケーションからの HTTP 通信を傍受したり、中間者攻撃(Man-in-the-Middle)を可能にする脆弱性が見つかっています。 専用サイト httpoxyという名前が付けられ、専用サイトが立ち上がっています。詳細は、このサイトが詳しいです。 httpoxy.org 攻撃内容 アプリケーションからHTTP通信を行う際に、環境変数HTTP_PROXYの値を、HTTPプロキシとして見るライブラリがある。 HTTPリクエストにProxyヘッダを付けられると、環境変数HTTP_PROXYにその値がセットされる。(これは、CGIの仕様) つまり、任意のプロキシを外部から指定できてしまうので、通信内容の傍受や偽装ができてしまう。 対象となる PHP アプリケーション HTTP リクエストを受けて動作する PHP アプリケーション アプ

    PHPにおけるhttpoxyの対応 - Shin x Blog
    stealthinu
    stealthinu 2016/07/20
    httpoxyの件まとめ。curlはこの件のため10年前から大文字HTTP_PROXY見ないようにしてあるとのこと。httpoxyの件はichikawayさんやshin1x1さんといったPHPクラスタの人が注目されてる感あるな。
  • ここを気をつけるともっと良くなる勉強会の発表 - Shin x Blog

    勉強会や技術系のイベントで色々な発表を聞いていると、せっかく勇気を出して壇上に立ったのに、ちょっとしたことでもったいなあと感じることがあります。これは特に、発表に慣れてない人に多く感じます。 エントリでは、大いなる自戒を込めて、発表慣れていない人へこの辺を気をつけるともっと良くなるよ、というポイントを挙げてみます。 なお、下記のポイントは、発表慣れている人や意図してやっている人はスルーして下さい :) 1. 自己紹介が長い LT の時に感じるのですが、発表時間が 5 分しかないのに、自己紹介に時間をかけるケースがあります。自分が何者か伝えるのは大切ですが、自己紹介より発表内容が大事です。また、聞いている側からすると数多くの発表者の中の一人なので、よほどインパクトがある自己紹介でないと、あまり覚えていなかったりします。(それより内容の方が記憶に残りやすい。) やはり内容が大事で、そこが聞き

    ここを気をつけるともっと良くなる勉強会の発表 - Shin x Blog
    stealthinu
    stealthinu 2016/04/15
    勉強会の発表で気をつける点。自己紹介は短く。言い訳は入れない。発表と関係ないネタを入れない。無理して笑いを取りにいかない。発表で伝えたい事を決めておいて最後のスライドをそれで〆る。
  • Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい! - Shin x Blog

    Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible で気を付けること 以前から、Vagrant + Ansible の組み合わせでローカルの開発環境を作るなら、ホスト側に Ansible を入れるのではなく、ゲスト(VM)側に Ansible を入れる方が良いと考えていました。勉強会などでも良く話していたのでお聞きになった方もいるかと思います :) ホスト側に Ansible を入れない理由は、3 つあります。 まず、ホストに Ansible をインストールする手間が増える点です。Vagrant と Virtualbox のインストール(あとコー

    Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい! - Shin x Blog
    stealthinu
    stealthinu 2016/01/21
    これは良いタイミングだった。ちょうどWin上でもvagrant+ansibleの環境をしなければとやってたところだったので。
  • 1