タグ

phpとセキュリティに関するtekimenのブックマーク (5)

  • PHPカンファレンスの過去14+3回の登壇を振り返る - Qiita

    PHP Advent Calendar 2023の18日目の記事です。 PHPカンファレンスに登壇した記録を書きたいと思います。数えてみますと、2009年から昨年(2022年)までのPHPカンファレンス14回と、北海道2回、関西1回の合計17回登壇したことになります。 最初の登壇は14年前ですので、私の考えも当時からは変化していますので、そのあたりも触れながら紹介していきたいと思います。 PHP カンファレンス 2009 最初の登壇は2009年のPHPカンファレンスでした。この年はビジネスデイとテックデイに分かれていまして、ビジネスデイで登壇依頼を頂きましたので、当時温めていた「ウェブサイトを発注する際のセキュリティ」についてお話しました。 スライドの中で「脅威分析やってもあまり意味ない」みたいな物騒な意見が書いてあります。当時はそのように考えていたわけですが、これは当時のサイトがECサイ

    PHPカンファレンスの過去14+3回の登壇を振り返る - Qiita
  • 静的解析ツールで生まれたSQLインジェクション | ドクセル

    自己紹介 小川 経歴 ~2009: Webアプリ開発のバイト&業務委託 2009~2019: 三菱重工 イット何も関係ない。野良のパソコンの大先生してた 2019~いま: root ip B2BのSaaS作ってます PHPVue分かる人来て!!1 面白かった脆弱性 - CVE-2023-22727 PHPフレームワーク CakePHP 4 のSQLインジェクション脆弱性 ORM limit(), offset() でSQLi CVSS v3 9.8 2023/01に修正済み CakePHPLaravelの次に使用率高いフレームワーク(多分) 割と使いやすいからお勧め 一般にコード品質が上がる静的解析ツールの使用で逆に発生

    静的解析ツールで生まれたSQLインジェクション | ドクセル
  • 徳丸浩の日記: 解答:間違ったCSRF対策~中級編~

    この記事は、先日の記事「問題:間違ったCSRF対策~中級編~」に対する解答編です。まだ問題を見ていない方は、先に問題を読んで(できれば自分で解答を考えて)からこの記事をお読みいただくとよいと思います。 それでは、解答を説明します。 はじめに 出題時のわざとらしさから、この問題のポイントはstrcmp関数の挙動にあると気づいた方が多いと思います。 if (empty($_SESSION['token']) || empty($_POST['token']) || strcmp($_POST['token'], $_SESSION['token'])) {  // ワンタイムトークン確認 die('正規の画面からご使用ください'); } そして、strcmpの引数はどちらもempty()によるチェックが入っています。また、$_SESSION['token'] は、状態遷移図(下図)により、NU

    徳丸浩の日記: 解答:間違ったCSRF対策~中級編~
    tekimen
    tekimen 2018/11/15
    PHP マニュアル > 言語リファレンス > 関数 ページ(http://php.net/manual/ja/functions.internal.php )の注意を読むとNULLを返すだろうけど、そうとは限らないみたいなことが書いてありますね(例としてPHP 5.6までのmbstring関数はfalseなど)
  • 徳丸浩の日記: 問題:間違ったCSRF対策~中級編~

    この記事は「問題:間違ったCSRF対策~初級編~」の続編です。前回同様、この記事では問題のみを出し、想定解答は後日公開することにします。ネタバレとなるブックマークコメントやツイートなどは控えていただけると幸いです(「思いのほか簡単だった」など感想は可)。ブログ記事等に解説記事を書くことは歓迎いたします。 この問題が果たして「中級」なのかについては異論があると思います。きわめて易しいと思う人もいれば、きわめて難しいと思う人も多いと思います。中をとって中級としましたが、現実には難し目かと思います。 今回の問題は、前回(初級編)のトークンチェック部分(chgmail.php内)のみを変更したものです。まずは変更箇所を説明します。 前回のおさらい if ($_POST['token'] !== $_SESSION['token']) { // ワンタイムトークン確認 die('正規の画面からご使用

  • PHPの全バージョンの挙動をCGIモードで試す

    PHPの挙動を調べていると、マニュアルにも、ChangeLogにも載っていない変更にしばしば遭遇します。たとえば、PCRE系関数(preg_xxxx)の正規表現指定(第1引数)において、過去のPHPではNULLバイトを許容していましたが、最近のPHPでは、正規表現中のNULLバイトをエラーにしています。この変更は、マニュアルには載っておらず、ChangeLogには記載されているもののNULLバイトとは書いていないので、ちょっと気がつきにくいですね。 Fixed bug #55856 (preg_replace should fail on trailing garbage) このような場合、ソースコードの該当箇所を調べるか、適当にあたりをつけたバージョンのPHPをビルドして試すなどの手法がとられているかと思いますが、@hnwさんが phpall を発表されたことで、この種の調査が一挙に楽に

    PHPの全バージョンの挙動をCGIモードで試す
    tekimen
    tekimen 2016/12/17
    "HTTPヘッダの微妙な挙動については、Apacheモジュール版とCGI版では微妙な差があり、検証に注意を要することが課題と言えます。" Dockerで閉じ込めるか、シェルスクリプトでlibphpx.soを切り替えるかかな…
  • 1