|
ご無沙汰!!
最近忙しすぎて人間的な生活を忘れてましたが、 庭にイチゴがなってるのを見てふと思い出しました。 ![]() 食べ頃はもう少し先か? この日はリクエストにお答えしてオムライスを作りました。
![]() スプーンでケチャップを広げさあ食べようと思った矢先に、 写真撮ってなかったことを思い出したため、若干表面が乱れております。 2日寝て
1日は山を自転車で登って腰が痛くなり 残り1日は家でエレキギターの練習。 そうだ、ハンバーグを作りました。 ![]() どうしても大きなハンバーグが食べたかったのです。
久しぶりに余裕ができたので溜まってる写真をアップしなければ。
![]() スパゲティミートソース in 事務所 国産トマトと赤ワインを使った豊かな味わい!! のつもりが若干薄味。 やはり固形スープの素を入れるべきだったかも。 仕事の覚書程度に。
職場の後輩が急遽中国語サイトのメールフォームを作ることになったのでヘルプしました。 単純に中国語だけでなく、日本語も入るかも知れないということなのでUTF-8メールをチョイス。 こちらのサイトを参考にさせていただきました。多谢。 http://www.securehtml.jp/utf-8/php_utf_mail.html ポイントは ・フォームページHTMLをUTF-8で表示 ・mbsring.internal_encoding を UTF-8 に ・mbstring.language は "uni" に ここでmbstring.language が Japanese になっていると日本語以外の文字が化けます。 後はメールヘッダにつけるMIMEタイプとエンコーディング指定をしっかりと。 そういう意味ではmb_send_mail() で送るより、sendmail コマンドへパイプを開いて 流し込む方が確実かと。どうもmb_language() の後でmb_send_mail() をすると、 余計なお世話ヘッダがメールに紛れ込むようです。 以下サンプルコード。 ※OSコマンドインジェクションを気にしたコーディングではありません!! お使いになる際は、sendmailコマンドの引数に来る変数にご注意を!! ※リクエストがあったのでOSコマンドインジェクションを気にしたコードに書き直しました。 それと同時に各種メールアドレスの指定を$_POST由来に。 <?php //$toaddr = "宛先メールアドレス"; $toaddr = $_POST["toaddr"]; //$fromaddr = "送信元メールアドレス"; $fromaddr = $_POST["fromaddr"]; $subject = "我的车在对面。"; //うろ覚え中国語、私の車は向かいにあります。 /** ここでメールアドレスの正当性チェック OSコマンドインジェクションを防ぐには、sendmailコマンドを途切れさせる文字 つまり ; なんかが入るのを阻止すればいいのです。 (他にあれば補足お願いします) ただ今回の場合、sendmailコマンドの引数に来るのは各種メールアドレスなので、 メールアドレスとして正しい形式であれば自然と不正な文字が入る余地はなくなる というわけです。 **/ function checkMailAddr($addr) { if(preg_match("/^[a-zA-Z0-9\.\-_]+?\@[0-9a-zA-Z\-_]+?\.[a-zA-Z0-9\.\-_]+?$/",$addr) == 1) { return true; } else { return false; } } if(!checkMailAddr($fromaddr)) { echo "送信元メールアドレスが不適切です。"; exit; } if(!checkMailAddr($toaddr)) { echo "宛先メールアドレスが不適切です。"; exit; } //文字コードなど指定 ini_set("mbstring.internal_encoding","UTF-8"); mb_language("uni"); //Subjectの変換は文字コード指定の後 $subject = mb_encode_mimeheader($subject); //本文 (私の車は向かいにあります。ありがとう) $body = "我的车在对面。谢谢。"; //本文を Quoted-Printable形式にエンコード。使えないサーバなら //別にエンコードを変えなくてもよい $body = mb_convert_encoding($body,"Quoted-Printable","UTF-8"); //sendmailコマンドへパイプを開きストリームを流す //これを利用する場合は各種アドレスに不正な文字列が混入しない様 //注意すること。(OS Command Injection攻撃) //またブログへの投稿時にアラートが出たので、popen を po_pen にしてます。 $pp = po_pen("/usr/sbin/sendmail -f $fromaddr $toaddr","w"); fputs($pp, "MIME-Version: 1.0\n"); fputs($pp, "Content-Type: text/plain; charset=utf-8\n"); //ここは本文のエンコーディングがQuoted-Printableなのでこのように指定。 //UTF-8のままだったら Content-Transfer-Encoding: 8bit と指定 fputs($pp, "Content-Transfer-Encoding: Quoted-Printable\n"); fputs($pp, "From: $fromaddr\n"); fputs($pp, "To: $toaddr\n"); fputs($pp, "Subject: $subject\n"); fputs($pp, "\n"); fputs($pp, "$body\n"); pclose($pp); ?> と、ここまで書いといてブログに中国語がちゃんと表示されるのか不安になってきました。 またお使いのメーラがUTF-8メールで中国語をサポートしてなければ、中国語文字の 部分だけ■になってしまいます。OutLook ExpressとかWindows Mail なら大丈夫? ついでにセキュリティ的な補足を。 PHPなんかでフォームやURLパラメータから値を取る場合、根本的な原則として 「外部入力は危険」と思うべきです。 危険というのは悪意のある入力が常にある、という意味で。 「はん、そんなの関係ねえな」と仰る方は、今すぐお使いのサーバにてアクセスログや エラーログ、もし可能ならsecureログなどをご覧になってください。 大切なことは、外部入力の危険性を踏まえつつ入力項目の仕様を定めることです。 特にWebプログラミングを生業としている人間にとって、セキュリティだけを主張しても お客様は納得しないということは周知の事実だと存じます。 例えば 「ここの部分に表示する項目をテキストエリアで編集したいけど、Javascriptとか HTMLタグも書き込めるようにしたい」 「お問い合わせフォームで入力させる送信者メールアドレスは , 区切りで複数許可したい」 などなど。 このような要望を「セキュリティ的に問題があるのでダメです」とつっぱねられたら楽なの ですが、そうはいかないことが多い。 ですので、大抵の場合にはセキュリティ面を考慮しながら最大限要望を満たすような仕様を 考えて実装しなくてはなりません。 この「仕様を考えて実装する」ということを怠ったときにこそ、セキュリティホールが生み出されて しまうのです。 。。。などと言いましたが単にちょうどいい実例が思い浮かばなかっただけで。 まあ簡単に言ってしまうと「シンプルにする。余計なことはさせないように作る」 ということを心がけているだけで結構セキュアにできちゃったりするものです。 「Keep It Simple, Stupid!!」 とはよく言ったものだ。 すごく開いてしまいました。ごきげんよう。
仕事が忙しかったりネタがなかったり低気圧アレルギーで死にそうだったりしてました。 とりあえず復活第一弾。 ![]() ごちゃごちゃして分かり辛いかもしれませんが、自転車のハンドルが折れました。 やはりスチール+樹脂コーティングはダメだ。 社会人になってからつぶした自転車はこれで5台目くらい。。。 今日はリクエストがあったので「肉巻おにぎり」にチャレンジしてみました。
牛肉を醤油とみりん、おろしショウガで仕立てたタレに2時間ほど漬け込み、 フライパンで焼いたものでおにぎりを巻きました(むしろラップに焼いた肉と ご飯を載せて握った感じ) ![]() ※今日も今日とて会社で料理です。煙がひどくて火災報知器が鳴り出さないか ヒヤヒヤでした。 写真ではあまりおいしそうな感じはしませんが、焦げたタレの香りが香ばしく またご飯にちょっときつめのタレの味が程よく馴染んでました。
最近寒い日が続いていたので、今日のお昼はシチューにしました。
![]() 鶏モモ、玉ねぎ、にんじん、ジャガイモのオーソドックスな材料と ホワイトソースで。 しかし、今日は暖かい。昨日までの寒さが嘘のよう。。。若干がっかり。
会社近所にあってたまに行く(最近行ってない)喫茶店の入ってるビルです。
![]() この近辺ではもしかしたら有名かもしれない。
|
最新の記事
カテゴリ
最新のコメント
最新のトラックバック
検索
おすすめキーワード(PR)
リンク
ファン
|