yohgaki's blog

  • Facebook
  • X
  • PHPスクリプトアップロード対策

    今日はWordPressプラグインとWebサーバー設定の脆弱性を例にスクリプトアップロード対策を紹介します。

    ファイルアップロードをサポートしているシステムの場合、PHPスクリプトとして実行されてしまう拡張子を持つファイルをアップロードされてしまうとサーバーを乗っ取られてしまいます。

    参考リンク:

    • WordPress GeoPlaces 4.x Shell Upload
    • Uploadify 3.2.1 Shell Upload / Information Disclosure

     

    (さらに…)

    2013年11月27日
  • APIとエスケープ/バリデーションとセキュリティ

    今回はセキュリティ対策におけるAPIとエスケープ/バリデーションをどう考えるかの話です。

    Cプログラマになろうとしているプログラマにメモリ管理を教えないことは考えられません。メモリ管理を考えなくても文字列の処理をしたりするライブラリなどもありますが、メモリ管理をあまり考えなくても良いAPIさえ使っていればOK、メモリリークもValgrindでチェックしてレポートされなければOK、と考えているプログラマが作ったプログラムが安全である可能性は低いでしょう。

    言語やプラットフォームの基本中の基本を避けて通っては安全なプログラムの構築が難しくなるだけです。

    安全なプログラムを作るために「プログラマに何を教えるべきか?」が今日のテーマです。

    (さらに…)

    2013年11月26日
  • ブログアプリをb2evolutoinからWordPressに移行しました

    昨日までブログアプリはb2evolutionでしたが、今日からWordpressに変わりました。

    (さらに…)

    2013年11月25日
  • CasperJS/PhantomJSでシンタックスエラー行を取得する方法

    CasperJSやPhantomJSを使っていてシンタックスエラーがあると

    [yohgaki@localhost ]$ casperjs test.js
    SyntaxError: Parse error
    

    と表示するだけでエラー行を返してくれません。

    (さらに…)

    2013年11月24日
  • フレームワーク対決:Node.js+SailsとPHP+Phalconのベンチマーク

    Node.jsは速いと言われています。Node.jsのMVCフレームワークであるSailsとPHP最速フレームワークであるPhalconとの性能を比較しました。

    (さらに…)

    2013年11月23日
  • Fedora19用のPhalconのRPM/SRPMパッケージ

    PHP最速フレームワークPhalcon 1.2.4のRPM/SRPMパッケージを作りました。バイナリRPMはFedora19 x86_64用のみ作りました。

    (さらに…)

    2013年11月22日
  • SSLでの圧縮の利用は禁止

    他人のブログのコメントに書いて、自分のブログに書かないのも良くないので一応ここにも書いておきます。

    「SSLでの圧縮の利用は禁止した方が安全」です。

    (さらに…)

    2013年11月19日
  • Linux上のCasperJS/PhantomJS/SlimerJSでShift JIS/EUCを取り扱う方法

    Linux上のCasperJS/PhantomJS/SlimerJSからShift_JIS/EUC-JPのページを取り扱う事が出来なくて困っていたのですが、解決策が分かりました。

    (さらに…)

    2013年11月18日
  • SQLのエスケープ

    SQLにエスケープなんて必要ないと考えている方も居るとは思いますが、現実にはエスケープを知っておくことは必須と言っても構わないと思います。

    既にSQL識別子のエスケープについては書きましたが、今回はSQLエスケープというよりは安全にSQLデータベース利用する話です。先ずはエスケープの話を全て終わらせよう、と思っているのですがSQLエスケープのエントリが無いので作りました。私のブログを読んでいる方はエスケープ処理、プリペアードクエリの利用方法などはよくご存知だと思うのでここの部分は省略しています。

    (さらに…)

    2013年11月17日
  • JavaScript: / の \ によるエスケープのみによるセキュリティ対策は禁止

    RFC 4696をもう一度読みなおしてみると/もエスケープ可能文字に定義してありました。JavaScriptのエスケープシークエンスの処理の部分も間違っていたので全面的に書き直します。

    (さらに…)

    2013年11月16日
  • PHPのJSONのエスケープ

    追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。

    JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。

    PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。

    JSON関数がサポートされている話は簡単!となれば良いのですが、 いろいろ考慮しなければならない事があります。

    TL;DR; PHPのjson_encode()を安全に利用する方法

    json_encode()を利用する場合

    $json = json_encode($data, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);

    と利用します。これでもまだ最適なエンコード方式とは言えませんが、デフォルトとして最低限必要なオプションが

    JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT

    です。

    JSONデータの文字エンコーディングは基本UTF-8です。UTF-8文字データは”予めバリデーションしておく”必要があります。

    (さらに…)
    2013年11月15日
  • PHP最速フレームワークPhalconのインストール

    Phalconを初めて知ったのはもう忘れるくらい昔の話です。今でも活発に開発が行われており、かなり使えるフレームワークに仕上がっています。

    Phalconは他のどのPHPフレームワークと違う特徴があります。PhalconはPHPのフレームワークですが、PHPで書かれていません。C言語で書かれています。つまり、PHPのネイティブモジュールとして動作するPHPフレームワークです。

    (さらに…)

    2013年11月14日
  • PHPの比較とBOOL/NULL型の話

    先日、10年以上勘違いをしていたことがPHPの開発者MLで議論して発覚したので、その大恥を披露します。

    PHPの比較とBOOL/NULL型の話です。

    (さらに…)

    2013年11月13日
  • ChatWorkのコピーサイトを調べてみました

    ChatWorkをまるごとコピーしたコピーサイトが中国に登場で紹介したように、まるごとコピーしたサイトが現れました。こういうコピーサイトが現れると、内部のソースコードが漏洩したのでは?と不安になる方も居ると思います。調べてみたので参考にして下さい。

    ChatWorkの画面
    chatwork_capture

    コピーサイトのWokingIMの画面
    workingim

    (さらに…)

    2013年11月10日
  • PhantomJSがURLをopenするとハングする原因

    PhantomJSはWebKitを利用したヘッドレスHTTPクライアントです。Webアプリのテストのみでなく、WebページをPDFや画像に変換する為に利用している方も多いと思います。手元のFedora19を載せているマシンでは動作せず、原因と思われる物も分ったのでエントリを作りました。
    (さらに…)

    2013年11月9日
←前のページ
1 … 24 25 26 27 28 … 97
次のページ→

yohgaki's blog

  • Facebook
  • X

Twenty Twenty-Five

Designed with WordPress

 

コメントを読み込み中…