PHPに関するMinazukiBakeraのブックマーク (14)

  • not found

  • htmlspecialchars/htmlentitiesの正しい使い方

    (Last Updated On: 2018年8月16日)追記:このエントリは古い情報です。今のHTMLエスケープの情報は以下の新しいエントリを参照してください。 PHPHTMLエスケープ PHP_SELFはそのまま出力できないに htmspecialchars($str, ENT_QUOTES); じゃなくて、 htmspecialchars($str); で終わらせてしまった場合の、 問題例が非常に欲しいです!! とコメントを頂きました。 htmlspecialcharsとhtmlenties関数はENT_QUOTESを指定しないとENT_COMPAT(セキュリティ上問題があるが互換性を維持)が指定された状態と同じ動作をします。 ENT_QUOTESは”と’の両方をHTMLエンティティに変換するオプションです。ENT_COMPATは”のみHTMLエンティティに変換します。 JavaS

    htmlspecialchars/htmlentitiesの正しい使い方
    MinazukiBakera
    MinazukiBakera 2009/10/13
    とりあえず、XHTMLでも属性値を ' で括ることは出来るということ、SGML応用系のHTMLではscript要素内の文字参照が展開されないということを指摘しておきたい。HTMLの知識をもう少し強化してほしいです。
  • htmlspecialcharsに関する素敵なお知らせ - 岩本隆史の日記帳(アーカイブ)

    外出のため確認が遅くなってしまったのですが、「htmlspecialcharsに関する残念なお知らせ」という記事で触れたバグレポートが、reopenされ、fixされました。 「改善される見込みは薄い」という私の予測は外れたわけで、申し訳ないと思うと同時に、htmlspecialcharsの挙動が改善され、嬉しく思っています。ご尽力いただいた皆様、ありがとうございました。 PHPのバグレポートを初めて書く方へ PHPのバグレポートには、再現コードや期待される結果、実際の結果を書く欄があります。私のレポートでも埋めました。 PHPのコミッタはそれらを読み、バグだと思えばコードを修正するでしょう。また、仕様だと思えば却下するでしょう。私のレポートでいえば、janiさんは仕様と判断され、moriyoshiさんはバグと判断されたわけです。「それでいいのか」という気もしますが、そうなのだから仕方がない

    htmlspecialcharsに関する素敵なお知らせ - 岩本隆史の日記帳(アーカイブ)
    MinazukiBakera
    MinazukiBakera 2009/10/11
    いろいろな意味で素敵ですね。
  • htmlspecialcharsのShift_JISチェック漏れによるXSS回避策

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2009年10月9日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、PHPhtmlspecialchars関数の文字エンコーディングチェック不備をついたクロスサイト・スクリプティング(XSS)脆弱性について、PHP側のパッチが提供されない状況での回避策について説明します。 何が問題か PHPにおいて、XSS対策にはhtmlspecialcharsによって記号をエスケープすることが行われますしかし、htmlspecialcharsを利用していても、Shift_JISの先行バイトを利用して、XSSが発生する場合があります。 例えば、以下のようなINPUTがあ

  • htmlspecialcharsに関する残念なお知らせ - 岩本隆史の日記帳(アーカイブ)

    htmlspecialcharsのパッチ私案」に書いた件、バグレポートを出してみましたが、「すでに同じバグレポートがあるだろ」という理由により、あえなく却下されました。 せめて先方が「同じ」とみなしているレポート番号ぐらいは示してほしくて、そのようにコメントしましたが、お相手のjaniという人は気難し屋のようで*1、教えてもらえる気がしません。 私なりに探した結果、下記のレポートがくさいように感じました。 PHP :: Bug #43896 :: htmlspecialchars() returns empty string on invalid unicode sequence 「不正なUTF-8シーケンスの場合に空文字列を返すのはおかしい」というレポートで、私のそれとは正反対どころか、Shift_JISにもEUC-JPにも触れられていない別個のものです。もちろん、私はレポート送信前に

    htmlspecialcharsに関する残念なお知らせ - 岩本隆史の日記帳(アーカイブ)
    MinazukiBakera
    MinazukiBakera 2009/10/07
    ……。
  • 文字エンコーディングの妥当性確認(バリデーション)について - t_komuraの日記

    大垣さんからコメントをいただきましたので、最後に追記しました(2009.09.22)。 少し時間が経ってしまいましたが、以下のページを読んで、PHP に関連する部分について思ったことを書きたいと思います。 http://blog.ohgaki.net/char_encoding_must_be_validated http://blog.ohgaki.net/is-char-encoding-problem-difficult 私の理解が間違っていなければ、「Web アプリケーションで文字エンコーディングに関連する問題を無くす」ことを目的として、全ての Web アプリケーション開発者が以下を実行しようという主張だと思います。 全ての入力文字列の文字エンコーディングの妥当性を確認する 文字エンコーディングを厳格に取り扱う データベースなどで「バイナリ」に近い文字エンコーディングは利用しない

    文字エンコーディングの妥当性確認(バリデーション)について - t_komuraの日記
    MinazukiBakera
    MinazukiBakera 2009/09/22
    参考になる。バージョンによる動作の違いがかなり多いようで大変ですね。
  • (Microsoft PowerPoint - Drupal\225\327\213\255\211\357.pptx)

    目的:PHP開発者が安全なWebプログラムを 作成するために最低限知っておくべき知識を 習得する。 注意:この資料がセキュリティ対策の全てで はありません。はありません。 このプレゼンテーションでは時間の都合上、具体的 な対策用のコードなどが省略されています。サーバ サイドコードのより具体的な対策は「Webアプリセ キュリティ対策入門」(弊社社長大垣靖男著 技術評 論社)に記載されています。 Ajaxセキュリティについては「Ajaxセキュリティ」 (毎日コミュニーケーションズ)をお勧めします。 2009/9/6 ©エレクトロニック・サービス・イニシアチブ 2 毎日見つかるWebアプリケーションの脆弱性 いろいろなクラックテクニックの考案 新しい技術の浸透 複雑化するWebアプリケーション インターネットに常時接続されたPCの増加インターネットに常時接続されたPCの増加 Webアプリケーシ

    MinazukiBakera
    MinazukiBakera 2009/09/08
    いろいろ微妙ですね……。CSRFの説明とか、SQLインジェクションのサンプルとか。
  • PHP on System i5 のご紹介 | 株式会社アミュレット

    現在、サイト構築の主流はPHPとなっています。多くの大手企業が採用し、もはや業界標準となりつつあります。 それには下図のような点が挙げられます。 Linux や FreeBSD 等の多くの Unix 系システム, Microsoft Windows, Mac OS X など主要な OS で動作します。 また、Apache や Microsoft IIS を始めとした多くのウェブサーバをサポートします。

    MinazukiBakera
    MinazukiBakera 2009/07/06
    PHPのメリット:「技術者単価が低いので必然的に開発コストを抑えられる。」
  • PHPについて質問です。 クッキーの初期化について教えていただけないでしょうか?…

    PHPについて質問です。 クッキーの初期化について教えていただけないでしょうか? $_COOKIE['order']=""; と自分が作った$_COOKIE['order']の値をこれで初期化しようと思ったのですが実際には無理でした。 お手数をおかけしますがよろしくお願いします。

    MinazukiBakera
    MinazukiBakera 2009/06/30
    「JSで消せ」が複数出ているのが興味深い。PHPってそういうものなの?
  • 第27回 見過ごされているWebアプリケーションのバリデーションの欠陥 | gihyo.jp

    今回解説するWebアプリケーションのバリデーションの欠陥はPHPに限った問題ではありません。多くのプラットフォームのWebアプリケーションで見過ごされているバリデーション仕様の欠陥です。それは文字エンコーディングのチェックです。 文字エンコーディングバリデーションの必要性 筆者の知る限りでは、2004年に相次いで今まで知られていなかったアタックベクタ(攻撃経路)が見つかりました。2004年に多く見つかった新しいアタックベクタとは不正な文字エンコーディングを利用した攻撃です。不正な文字列を利用したJavaScriptインジェクションやSQLインジェクションの攻撃手法が公開されました。 文字エンコーディングを利用した攻撃自体は当時でも新しい攻撃手法ではありませんでした。文字エンコーディングを利用した攻撃は、少なくとも2000年から広く知られていた攻撃手法でした。ブラウザが文字エンコーディングを

    第27回 見過ごされているWebアプリケーションのバリデーションの欠陥 | gihyo.jp
    MinazukiBakera
    MinazukiBakera 2009/06/23
    「JavaScriptのバッファーオーバーフロー」って聞いたことがないのですが、そういうものがある?「XML処理系のバッファオーバーフロー(XSLTなど)」これは処理系の脆弱性?
  • PHPの比較の素晴らしさ加減は正常

    if ("0x0A" == "10") { print '(´ε` )チュッ'; } チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうってのは有名な話だよね。 文字列であっても整数と解釈できる文字列の場合は自動的に整数に型変換してくれる超便利機能があるってのは有名な話だよね。 だけどなんでコレが一致するかわけがわからんかった。 0x0Aは10進数で10になるので一致する。と、言いたいところなんですがそう単純な話じゃないんだ。 以下の例を目ん玉見開いて見て欲しい。 var_dump(0x0A); var_dump("0x0A"); var_dump((int)"0x0A"); var_dump((float)"0x0A"); var_dump(intval("0x0A")); 実行結果 int(10) string(4

    PHPの比較の素晴らしさ加減は正常
    MinazukiBakera
    MinazukiBakera 2009/06/18
    直感に反しますが、実はマニュアルに書かれている挙動だったりする模様。→http://bakera.jp/ebi/topic/3634
  • 第25回 PHPのアキレス腱 ── セッション管理 | gihyo.jp

    PHPにはHTTPセッション管理モジュールが標準で付いてきます。このセッションモジュールには非常に重大なセキュリティ上の脆弱性が修正されずに残っています。その脆弱性とはセッションアダプションです。 セッションアダプションとは、セッション固定化攻撃に利用される脆弱性です。PHPのセッション管理モジュールがセッションアダプションに脆弱であることは、かなり以前、何年も前から知られています。しかし、開発者の理解不足より脆弱性が放置されたままになっています。 セッションアダプションとは セッションアダプションとは、ブラウザ等から送信された未初期化セッションIDをそのまま利用してセッションを初期化してしまう脆弱性です。ユーザが送信してきたIDでも第三者に予想できない文字列であれば大丈夫なのでは?と考える方もいると思います。その通りで第三者に予想できなければ問題ないですし、仮に予想できてもログインする際

    第25回 PHPのアキレス腱 ── セッション管理 | gihyo.jp
    MinazukiBakera
    MinazukiBakera 2009/05/13
    途中から話の流れが良く分からなくなり……。あとでじっくり読みますか。基本、ログイン時にsession_regenerate_id() で良いはずですが、ログイン前セッションはどうにもならないか……?
  • はてなブログ | 無料ブログを作成しよう

    中年以降の人生を考えるための5冊 今までずっと、ひたすらラクなことや楽しいことだけをやって生きていきたいと思っていたのだけど、40歳を過ぎた頃から、今までのやり方ではいろいろと行き詰まってくるようになってきました。何をやってもそんなに楽しくない。これからの人生はずっと下り坂が続いてい…

    はてなブログ | 無料ブログを作成しよう
    MinazukiBakera
    MinazukiBakera 2009/04/21
     crossdomain.phpの内容が……。あくまでサンプルですから、このまま置いたりしませんよね。→http://bakera.jp/ebi/topic/3583
  • CakePHP 比較演算子インジェクションに注意

    @deprecated この情報はCakePHP1.2betaまでのものです。1.2RC1についてはこの方法は有効ではありません。詳しくはCakePHP 1.2RC1からは比較演算子をキーに書くをどうぞ。 CakePHPのモデルで検索条件を指定する場合は比較演算子に注意が必要です。 検索条件では↓な感じで条件値の他にSQLの比較演算子を入れることができます。 <?php class UserController extends AppController { funtion index($id) { $id = is_numeric($id) ? $id : 0; // $id より大きなidを持つレコードを取得 $list = $this->findAll(array('id' => '> ' . $id)); $this->set('list', $list); } } ?> これを見

  • 1