タグ

ブックマーク / t-komura.hatenadiary.org (4)

  • mb_send_mail(),mail()で第5引数を設定する際の注意点 - t_komuraの日記

    以下の徳丸さんの記事を読んで、以前にmb_send_mail()の関連で調べたことがあったのを思い出しましたので、少し書きます。 PHPだってシェル経由でないコマンド呼び出し機能が欲しい 環境は Unix 系の OS で OS コマンドを使用してメールを送信する場合です。メール送信コマンドは php.ini で sendmail_path を設定します(デフォルト: "sendmail -t -i")。 mb_send_mail関数(mail関数も同様)ですが、第5引数(additional_parameter)にユーザの入力を使用する場合は注意が必要です。mb_send_mail関数の第5引数は、内部でescapeshellcmd(内部関数名:php_escape_shell_cmd)によって引数の文字列全体がエスケープされます。 escapeshellcmd() は、以前に徳丸さんから

    mb_send_mail(),mail()で第5引数を設定する際の注意点 - t_komuraの日記
  • PHP 5.3.0 の日付処理クラスと関数の追加・変更について - t_komuraの日記

    PHP 5.3.0 が公開されたのは結構前ですが、日付関係の処理について、PHP 5.3.0 でクラスや関数の追加・変更がありましたので、気になった部分だけ調べてみました。 新しく追加されたクラスとメソッド PHP 5.3.0 では、以下のクラスが追加されました。 DateInterval - 日付の間隔を表わす DatePeriod - 日付の期間を表わす DateTime クラスには、以下のメソッドが追加されました。 DateTime::add() - 年月日時分秒の値を DateTime オブジェクトに加える DateTime::createFromFormat() - 指定した書式でフォーマットした新しい DateTime オブジェクトを返す DateTime::diff() - ふたつの DateTime オブジェクトの差を返す DateTime::getLastErrors()

    PHP 5.3.0 の日付処理クラスと関数の追加・変更について - t_komuraの日記
    tknzk
    tknzk 2010/01/25
  • Shift_JIS では、htmlspecialchars() を使用しても XSS が可能な場合がある - t_komuraの日記

    以下のページに関連して、htmlspecialchars() を使用している場合でも XSS が可能かどうか少し調べてみました。 http://www.tokumaru.org/d/20090930.html その結果、いくつかのブラウザで文字エンコーディングに Shift_JIS を使用していた場合、XSS が可能なことを確認しました。 テストコードは以下の通りです。リンクにマウスポインタを乗せると埋め込んだ Javascript が実行されます。 <?php $_GET['a1'] = "\xf0"; // \xf0 - \xfc で可能 $_GET['a2'] = " href=dummy onmouseover=alert(document.title) dummy=dummy"; header( "Content-Type:text/html; charset=Shift_JIS

    Shift_JIS では、htmlspecialchars() を使用しても XSS が可能な場合がある - t_komuraの日記
    tknzk
    tknzk 2009/10/05
  • 出力時の文字エンコーディング変換、妥当性確認について - t_komuraの日記

    大垣さんが以下のページで PHP について言及しておられますので、気になったことを書いておきたいと思います。 http://blog.ohgaki.net/rails-ruby-1-9 私は、現在、PHP で構築したサイト運用はしていませんので、出力時に文字エンコーディングを変換、妥当性確認する方法がどの程度有効で、どのような問題があるのかは十分把握していません。ある程度実施方法については書いておきますので、参考にされる方は、実用可能かどうかを十分検証してください。 出力時に文字エンコーディングを変換する方法 PHPで、似た様な動作にしたい場合(ブラウザ以外からの入力も怪しいなど)出力時に強制的に文字エンコーディング変換してしまえば良いです。例えば、 mbstring.internal_encoding = utf-8 mbstring.http_output = utf-8 と出力文字エ

    出力時の文字エンコーディング変換、妥当性確認について - t_komuraの日記
    tknzk
    tknzk 2009/09/28
  • 1