タグ

ブックマーク / blog.ohgaki.net (3)

  • PHP開発者とユーザが知っておくべきシェルコマンドエスケープの内部処理

    (Last Updated On: 2018年8月13日)これから紹介する脆弱性はPHP 5.2.6で修正されています。修正された、とは言え注意が必要です。 PHPは古くからシェルコマンドとシェル引数をエスケープ処理する為に、escapeshellcmd関数とescapeshellarg関数を提供しています。 この関数はマルチバイト文字にも対応しているのですが、ビルドや環境によっては対応できていないときがあります。 escapeshellcmd/escapeshellarg関数ではC99で定義されてるmblen関数を利用しています。一般的なUNIX系システムではmblen関数は利用可能でると考えられるので、問題となる事は少ないと思いますが、PHPではphp_mblenマクロが以下のように定義されています。 #ifndef HAVE_MBLEN # define php_mblen(ptr,

    PHP開発者とユーザが知っておくべきシェルコマンドエスケープの内部処理
  • mod rewriteを使用した簡易WAF

    (Last Updated On: 2018年8月8日)http://www.0x000000.com/?i=567 にmod rewriteを利用した簡易WAF(Web Application Firewall)の定義例が掲載されています。同じようなアイデアをお持ちの方、既に似たような設定を使われている方も多いとは思います。 簡単なWAFですが、実用性も高いです。例えば、ヌル文字やHTML特殊文字のインジェクションは様々な攻撃で利用されます。アプリケーションで対処が忘れられがちなCOOOKIEやREFER、USER_AGENT等に特殊文字が入っていた場合にアクセスを拒否する部分だけもで導入する価値は十分にあると思います。 元ネタのサイトは英語ですが、解説付きです。 これを入れると問題となる場合もあるので、内容を理解してから利用しなければなりません。 RewriteEngine On Op

    mod rewriteを使用した簡易WAF
    bushimichi
    bushimichi 2008/06/09
    mod_rewrite セキュリティー
  • JavaScript文字列のエスケープ

    (Last Updated On: 2013年12月4日) 追記:新しくより安全なバージョンはこちらです。 hoshikuzuさんのページに書いてあるJavaScript文字列のエスケープ方法です。(元ネタのメールアーカイブは文字が欠落) http://d.hatena.ne.jp/hoshikuzu/20071011#p1 1. 「¥」を「¥¥」に置換する 2. 「”」を「¥”」に置換する 3. 「’」を「¥’」に置換する 4. 「/」を「¥/」に置換する 5. 「<」を「x3c」に置換する 6. 「>」を「x3e」に置換する 7. 「0x0D(CR)」を「¥r」に置換する 8. 「0x0A(LF)」を「¥n」に置換する SmartyのJavaScirpt文字列のエスケープ方法です。 CVS版:2007/10/12 case ‘javascript’: // escape quotes

    JavaScript文字列のエスケープ
  • 1