PHPカンファレンス小田原2024 の発表資料です。 https://phpcon-odawara.connpass.com/event/296492/ https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26d…
注釈:追記すべき情報がある場合には、その都度このページを更新する予定です。 概要 近年、インターネット境界に設置された装置の脆弱性の悪用を伴うネットワーク貫通型攻撃が脅威となっています。IPA は、昨年8月に公開した「インターネット境界に設置された装置に対するサイバー攻撃について ~ネットワーク貫通型攻撃に注意しましょう~」脚注1、今年4月に公開した「アタックサーフェスの Operational Relay Box 化を伴うネットワーク貫通型攻撃について ~Adobe ColdFusion の脆弱性(CVE-2023-29300)を狙う攻撃~」脚注2 で注意を呼び掛けています。 そのような中、IPA では、The PHP Group が提供する PHP の脆弱性 (CVE-2024-4577) を悪用した攻撃による被害を確認しています。具体的には、国内の複数組織においてこの脆弱性が悪用され
この記事はTLS/SSLを実装してみたいという人が増えるといいな!という気持ちで書いています。実装の詳細は別記事で書こうかと思います。 数年前からいつかTLS/SSLのプロトコルをPHPで実装したいと思い、まずは本で知識を得ようかとラムダノートの「プロフェッショナルSSL/TLS」や 「徹底解剖TLS1.3」を買って読んでみましたが、なかなか頭に入らずに読んでは寝てしまうというパターンに。 やはり自分でTLSを実装してみないとなと思ってたところに、PHPカンファレンス福岡2024で hanhan1978 さんの「PHPでデータベースを作ってみた」を見て大いに刺激をもらい、ついにTLS実装に着手できました。 speakerdeck.com この資料は本当によくて名言の宝庫です。たとえば、 「まじめに作ろうとすると大変な努力が必要になる。もっと迂闊につくりたい」 「不格好でもいいので、動く完成
この記事のモチベーション 「php-fpmとはなにか?」を知るため、PHPのドキュメントを見ました。 しかし、ここに書いていることはまあそうなのですがあまりに焦点が絞られ過ぎてて「php-fpmとはなにか?」に対する答えとしては少し不十分な気がしていました。 例えるなら数学の問題に答えるにあたって、途中式を飛ばしたり証明の過程を飛ばしたりというような感じ。 不十分というのは、それを理解するための段階をすっ飛ばして答えだけが書かれている状態のことを指しています。 その不十分なところを自分も曖昧にしか理解できていない気がしており、いい機会なので整理しておこうというのがこの記事のモチベーションです。 そのためこの記事は、「php-fpmとはなにか?」をプロセス→Webサーバー→実行方式と順を追って説明していく構成になっています。 「細けぇこたぁいいんだ、おらぁ今すぐ答えだけ知りてぇンダ」という方
Haskell界隈の一部で囁かれる都市伝説として、「Haskellで求人を出して集めた優秀な人材にPHPを書かせる」というものがありました。この都市伝説に実体はあるのでしょうか? 伝説 まず、議論の前提として、この伝説に言及している投稿をいくつか挙げておきます。これは「伝説が少なくとも伝説としては存在する」ことを立証するために挙げるのであり、これらの投稿について何らかの価値判断を行う目的ではありません。 GCPで人を集めてAWS書かせるやつ、Haskell と PHP で見た — mizchi (@mizchi) March 16, 2022 Haskellで募集してPHP書かせる事件だ — デジタル競争の敗者 (@Lugendre) June 18, 2021 Haskell プログラマを募集して PHP 書かせるって,ネタ元どこなんだろう? — ささき しげお (@SigSasaki)
OpenTelemetry を利用して PHP アプリケーションのテレメトリデータを計装する方法をまとめました。 本エントリのコードは下記で公開しています。 github.com OpenTelemetry とは 用語 PHP アプリケーションのマニュアル計装(手動計装) 構成 OTel Collector Jaeger 動作環境 必要なパッケージ PHP コード 設定 実行 PHP アプリケーションのゼロコード計装(自動計装) 必要な拡張とパッケージ 設定 PHP コード 実行 さいごに 参照 OpenTelemetry とは opentelemetry.io OpenTelemetry は、サービスやアプリケーションのテレメトリーデータ(トレース、メトリクス、ログなど)を計装、生成、収集、送信するためのオブザーバビリティフレームワークです。ベンダーニュートラルな OSS であり、CNC
FrankenPHP 1.0には、Symphony、Laravel、WordPressなどのネイティブサポートが含まれるほか、Caddyを搭載したプロダクショングレードのPHPサーバであり、PHPアプリのスタンドアロンで実行可能なバイナリとしてのパッケージ化が可能となっている。 さらに、PHP-FPMとNgnixを個別に実行する必要がなく、1つのサービスのみでPHPサーバを提供できるようになるとともに、PHP 8.2以降のほとんどのPHP機能拡張、およびすべてのCaddyモジュールと互換性がある。 ほかにも、アプリケーション起動してメモリに保持するワーカーモード、JavaScriptイベントとしてWebブラウザへ送信されるリアルタイムイベント、ZstandardおよびGzip圧縮、構造化されたログ、Prometheusメトリクスを使用したCaddyの監視、HTTPS・HTTP/2・HTTP
class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話番号は10文字以上"); } $this->tel = $value; } get{ return '電話番号は' . $this->tel; } } } $hoge = new HOGE(); $hoge->tel = '123456789012'; // OK $hoge->tel = 'abcdefghijkl'; // Uncaught ValueError: 電話番号は数値のみ $hoge->tel = '123'; // Uncaught ValueError: 電話番号は10文字以上
こんにちは!PHPとCを主に書いています、Sakiです。日中はBASE株式会社さんでお仕事させていただいています。早朝と夜間にphp-srcでの活動をしています。PHP8.4のリリースマネージャーもやってます。 2024年からありがたいことにPHPコア開発者として採用していただき、半年とちょっとになりました。ちょうど一区切りということで、これまでの活動を簡単にまとめたいと思います。細かいものや、最終的に成果が出なかった(議論がまとまらなかったなど)ものは除外しています。 2023年、コア開発者になる前 実は私はphp-srcどころかOSSの経歴がかなり短いです。 はじめてのコントリビュート PHP8.1から、PDO MySQLでmysqlndをドライバとして使用し、PDO::ATTR_EMULATE_PREPARESがtrueの場合、PHPのネイティブタイプで値が返される、というように仕様
え? PHPファイルを登録できるのはまずいでしょ…… Webアプリの「アップロード機能」に潜む“あるある”ワナ:“典型的やられサイト”で学ぶセキュリティのワナ(1/3 ページ) ネット上で商売するのが当たり前な時代。自社でWebサイトやWebアプリを抱える企業も相当な数になっている。そこでインシデントが発生すれば信用、ブランド、収益……失うものは計り知れない。 本連載では情報セキュリティの専門家・徳丸浩さんが制作した脆弱性診断実習用のWebアプリ「BadTodo」を題材に、ストーリー形式でWebアプリ制作に潜む“ワナ”について学んでいく。 登場人物は全て架空の存在だが、ワナは全て現実にあり得るもの。せりふは徳丸さんの監修の下制作した。 カクーノ株式会社:Webアプリ開発を手掛ける企業。本記事に登場する企業・団体及び人物は全て架空の存在である。 荒井考人(あらいこうと):入社したばかりの新人
弊社で毎月開催し、PHPエンジニアの間で好評いただいているPHP TechCafe。 2023年5月のイベントでは「型定義」について語り合いました。 弊社のメンバーが事前にまとめてきた情報にしたがって、他の参加者に意見を頂いて語り合いながら学びました。 今回はその内容についてレポートします。 rakus.connpass.com PHPと型 静的型付け言語 動的型付け言語 一般的な誤解 PHPの型 単一の式が持つ型 型システムで扱える型 never型について void型について self,parent,static型について resource型について evalでresource型を宣言すると リテラル型について ユーザー定義型について 複合型について 型のエイリアス mixed iterable PHPで取り入れられた型表現 型宣言のメリット PHPの歴史を振り返る PHPのドキュメント
こんにちは。大阪楽楽開発課のdaina_rksです。 Laravelのマイグレーションを活用して、テーブル定義を更新しているサービスは多いと思います。 しかしサービスが継続するにつれ、気づけば大量のマイグレーションファイルが存在している、、、なんて経験はありませんか? 私が携わっていたプロジェクトでも同じ悩みに直面していました。 この悩みに対して、私はマイグレーションファイルを全て削除するということを行いました。 今回はそのときの経験について、なぜマイグレーションファイルを削除するに至ったのか、削除するにあたって行なったこと、削除した結果どんな効果があったのかをご紹介します! マイグレーションファイルを全て削除するに至った理由 問題 マイグレーションファイルを全て実行するのに時間がかかる マイグレーションファイルのメンテナンスコストがかかる アイデア アクション ダンプ&リストアの仕組み構
php-fpm の挙動を確認するために発行されるシステムコールを簡単に確認できる Docker Compose 環境を作りました。 github.com システムコール strace-php-fpm strace オプション php-fpm が発行するシステムコール例 ini ファイルの探索 nginx からの FastCGI リクエスト PHP ファイルの読み込み さいごに 参考 システムコール システムコールは、php-fpm のようなユーザプログラムが、ファイル操作やネットワーク通信、プロセス制御のようなカーネルが提供する機能を利用する仕組みです。PHP コードは PHP(ここでは php-fpm)で実行する必要があるので、php-fpm が発行するシステムコールを確認することで php-fpm や PHP コードがどのように動作しているかを知る手掛かりになります。 システムコールを
2008年にまつもとゆきひろ氏によって書かれたエッセイ。 Attacking PHP - Matzにっき(2008-01-26) PHPがいかに駄目な言語か、という話。 2024年にはどうか 以下の見解は@tadsanによる私見である。 いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要 その通り hashやlistがobjectが区別できない objectは当時から区別できるので、事実誤認では。 hash(PHPでは連想配列)とlistはPHP 8.1でarray_is_list()関数が追加されて標準関数で識別できるようになった それまでもユーザーランドの静的解析でlist型として慣習的に扱われていた PHP 8でも型宣言として扱えるわけではない オブジェクト指向機能が壊れている PHP 4時代のOOPは「壊れていた」かはともかく、一般的なOOP言語の振る舞い
メディアとは本来、権力を監視するという重要な役割を担っています。しかし昨今では記者会見で特定の質問者を排除したり、報道機関に圧力をかけるといった行為がまかり通ってしまっているのが実情です。日本のメディアが「報道の自由度」を落とした原因とは? 池上彰氏が解説します。 ※本稿は池上彰著『池上彰の日本現代史集中講義』(祥伝社)より一部抜粋・編集したものです。 メディアへの監視を強めたかつては新聞が目の敵にされましたが、テレビの影響力が大きくなるにつれ、政府は警戒感を強めるようになりました。特に安倍政権は積極的にメディアを監視し、コントロールしようとしました。 選挙期間中、テレビ局は放送法に違反しないように、自ら政治的公平に配慮しています。しかし、安倍政権時代の2014年、自民党が在京テレビ局に対して「選挙報道に偏りがないように」と、わざわざ文書で申し入れを行ないました。 その結果、政治についての
PHPカンファレンス小田原(以下 ぺちこん小田原)に行ってきた。 このブログはその熱量の高さを思い出しながら、小田原駅前のスタバで書いてる。 カンファレンスで話をしたこと 懇親会キーノートで内省を勝ち取る、そのためには具象と抽象を往復して具象化の引き出しと抽象化の概念の理解を深めようという話をした。 そのために日報や週報からふりかえりし、能力を獲得していく。という話。 でもこれ、カンファレンスに参加すること自体が具象と抽象のスキルを強く獲得するチャンスだなって思ったので、感想と合わせて書く。 ちなみに文章中に出てくる経験学習モデルの話はスライドで説明している。 speakerdeck.com 経験という具象を疑似体験として聴く カンファレンスに行くと色んなセッションを聴くことができる。 もちろんぺちこん小田原でも最高だった。 至極のセッションの中で自分の中のベストトークを選ぶとしたらたつき
台湾でサイバーセキュリティのコンサルティングサービスを提供しているDEVCOREは2024年6月6日(現地時間)、PHPに緊急度が「緊急」(Critical)に分類される重大なセキュリティ脆弱(ぜいじゃく)性が存在すると伝えた。 PHPに発覚した新たなセキュリティリスク この脆弱性はWindows OSにインストールされている全てのバージョンのPHPに影響を及ぼし、認証されていない攻撃者がリモートから任意のPHPコードを実行する可能性がある。Windowsの文字エンコード変換を処理するベストフィット機能に問題があり、攻撃者はベストフィット機能を悪用することでPHPのコマンドライン引数に任意の文字列を挿入し、悪意のあるPHPコードを実行できる。 特に影響を受けるのはPHP 8.3.8、PHP 8.2.20、PHP 8.1.29より前のバージョンだ。ユーザーは修正済みのバージョンにアップグレー
目次[非表示] 1.はじめに 2.なぜPHPバージョンアップが必要なのか? 3.PHPバージョンアップ手順 3.0.1.PHP 7.4とPHP 8.3の変更差分調査 3.0.2.Laravelのバージョンアップ(7.3から10へ)の調査 3.0.3.Composerライブラリのバージョンアップ 3.0.4.PHP 8のローカル環境設定を更新する 3.0.5.静的解析の実施 3.0.6.テスト仕様書の作成 3.0.7.エラーの修正 3.0.8.テスト環境へのデプロイ 3.0.9.デバッグ 3.0.10.本番環境へのデプロイ 4.静的解析ツールの活用 4.0.1.PHPStanを使用した理由 4.1.ルールレベルの設定 4.1.1.使用した感触 5.まとめ 6.お悩みご相談ください はじめにこんにちは、株式会社DIVXでエンジニアを務めております、本間と申します。 今回は、PHPのバージョンを
PHP8.4 / PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2024/08/13、PHP8.4がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2024/11/21にPHP8.4.0がリリースされる予定です。 というわけでPHP8.4で実装されるRFCを見てみましょう。 RFC Property access hooks 賛成42反対2で受理。 プロパティフックです。 class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話
多くのプログラミング言語の処理系に、攻撃者が任意のコマンドを実行できる深刻な脆弱性が見つかった。JPCERTコーディネーションセンター(JPCERT/CC)と情報処理推進機構(IPA)が共同運営する脆弱性対策情報ポータルサイト「JVN(Japan Vulnerability Notes)」で2024年4月15日に公開された。 脆弱性が確認されたのは「PHP」「Rust」「Haskell」の各言語処理系とJavaScript/TypeScriptの処理系「Node.js」、音声や動画をダウンロードできる高機能なコマンド「yt-dlp」である。ただし、この脆弱性の影響を受けるOSはWindowsだけで、LinuxやmacOSなどの他のOSには影響しない。 多くのプログラミング言語は、プログラムの中からOS上でコマンドを実行する機能を持つ。Windowsでは言語処理系が「CreateProces
PHP の use 文では、クラス名や関数名、定数、名前空間などのエイリアスを設定できます。 <?php use App\Foo; use App\Bar as ABar; $foo = new Foo(); $bar = new ABar(); https://www.php.net/manual/ja/language.namespaces.importing.php この use 文は指定したシンボルにエイリアスを設定する、言い方を変えると名前空間をインポートするもので、オートロードでクラス定義 PHP ファイルを読み込むものではありません。*1 例えば、上記コードの場合、use 文の時点で App\Foo や App\Bar に対するオートロードは動作しません。 この動きを確認してみます。 use 文のみを実行 use 文でオートロードが動作するかは下記のようなコードで簡単に確かめ
2024/05/11 に玉藻公園内 披雲閣で開催された PHP カンファレンス香川 2024 にて、「PHPコードの実行モデルを理解する」を発表してきました。 発表資料 日頃実行している PHP コードがどのように実行されているかをざっくりとイメージして頂くために、PHP コードの実行モデルと、身近な SAPI である php-fpm(mod_php)と php コマンドの実行モデルをご紹介しました。 X や発表後の会話では、やはり php-fpm(mod_php) の Laravel アプリケーションではリクエスト毎に 400 ファイル以上をコンパイルしている(OPcache 未使用の場合)話の反応が多かったです。 カンファレンスのような多様な人が集まる場では、知っている人にとっての「当たり前」を共有する発表も大事だなとあらためて感じました。こういった発表もやっていきたいですね。 Tog
よく見たら不自然なんだけどこれまで普通に許されていた、この引数デフォルト値がついに禁止されます。 何がおかしいって型がintなのに引数を渡さないと$xがnullになるので矛盾してしまうわけですね。 これはPHPが昔からの仕様を残しておいたためであり、いわゆる歴史的経緯というやつです。 以下は該当のRFC、Deprecate implicitly nullable parameter typesの日本語訳です。 PHP RFC: Deprecate implicitly nullable parameter types Introduction PHP7.1で?T構文、さらにPHP8.0でUnion型がサポートされたことにより、PHPはnull許容値型を正しく書くことができます。 歴史的にはPHP5.0でオブジェクト型、PHP5.1でarray、PHP5.4でcallable、PHP7.0で
Orange Tsai tweeted a few hours ago about “One of [his] PHP vulnerabilities, which affects XAMPP by default”, and we were curious to say the least. XAMPP is a very popular way for administrators and developers to rapidly deploy Apache, PHP, and a bunch of other tools, and any bug that could give us RCE in its default installation sounds pretty tantalizing. Fortunately, for defenders, the bug has o
日々を忙しく過ごす中でも"なりたい自分を忘れない"ことが大切だと、ライフコーチの本橋へいすけさんは語ります。 現代に生きる私たちは、著しい社会の変容やIT技術の進歩により、より忙しい毎日を過ごすことになりました。タスク管理にあたって多くの人が作るのがTO DOリスト。しかし、このTO DOリストにはメンタル面にかかわる落とし穴があるといいます。ライフコーチであり、「pure life diary」という自分を整えるための手帳を開発・販売する本橋へいすけさんは、「TO BEリスト」こそ多忙な中でも豊かな人生を実現させる手助けになると話します。TO BEリストの具体的な内容と効果についてうかがいました。 【図解】先延ばしグセがなくなる"ノートの書き方" 忙しい現代社会で、豊かな人生を送るために現代社会は非常に忙しく、情報過多の時代に生きています。会社における仕事は増え続ける一方で、残業は減らす
PHPを使う上で、約140の遭遇しがちな問題とその解決策をまとめたレシピ集です。PHPの基本的な文法から、暗号化、エラー処理、デバッグ、パフォーマンスチューニングといった重要な概念、型システム、非同期処理まで、効率的でモダンなWebアプリケーションを構築するためのレシピを網羅しています。パフォーマンスの改善、安全性の強化など、機能が大幅に向上したPHP 8を使いこなす上で、信頼できるリファレンスとして、常に手元に置いておきたい一冊です。 はじめに 1章 変数 レシピ1.1 定数の定義 レシピ1.2 可変変数の作成 レシピ1.3 変数の交換 2章 演算子 論理演算子 ビット演算子 比較演算子 型キャスト レシピ2.1 if/elseブロックの代わりに三項演算子を使用する レシピ2.2 null値を合体する レシピ2.3 値が等しいか評価する レシピ2.4 宇宙船演算子により値をソートする レ
php-fpm がリクエストを処理しているサイクルをざっくりとまとめました。 php-fpm ワーカープロセスの生成 リクエストループ 1) リクエスト接続待ち listen_socket の生成 FastCGI リクエスト 2) リクエスト開始処理 実行PHPファイルパスの決定 スーパーグローバルへの格納 3) PHPファイル実行 4) リクエスト終了処理 PHP コード実行リソースの解放 max_requests チェック FastCGI クライアントとの通信 接続開始 リクエスト読み取り レスポンス書き込み 接続終了 さいごに php-fpm ワーカープロセスの生成 php-fpm は FastCGI リクエストを処理する SAPI 実装の一つです。いわば、PHP コードを実行する FastCGI サーバです。prefork 型となっており、nginx 等からの FastCGI リク
今週のお題「一生モノ」 一生モノと言えば本ですね。知らない間に本が増え続け、早くも部屋の周りを埋める尽くすまでになってしまいました。本は一度買うと捨てづらいですね。今回は、ビジネス書ではなく、漫画こそが一生モノの勉強になるのだというすんごい本を紹介します。(笑) [:contents] 【1.本書のポイント】 漫画を読んでますか? 最近は、漫画作品の数も増えましたね。 テレビでも、しばしば名作と呼ばれる漫画が放映されています。 書店に行くと、たくさんの漫画がありますが、漫画を読むとちょっと罪悪感を感じたりしていませんでしょうか? 実は、漫画こそが、ビジネスを、人生を教えてくれるというのが、この本の主張です。 漫画を読んで、親から注意されている人からすると、水戸黄門の印籠のようなすごい本が登場しました。 さて、漫画を読むと何が良いのでしょうか? 【2.本書のポイント】 あらゆる場面において、
2024.kphpug.jp おはようございます!あすみです! 6年ぶりの開催となったPHPカンファレンス関西2024に一般参加したのでふりかえるぞ〜〜〜🐸 すごい数だーーーー! #phpkansai pic.twitter.com/IJ9ZZK0Wgz— あすみ (@asumikam) 2024年2月11日 めちゃ大人数!!!🎉🎉🎉 参加者の「話しやすい」を作る note.com 関西でコミュニティを起こすためには、まず参加してくれるメンバーを増やす必要があります。 そのため、最も重視する取り組みとして「関西で新しくコミュニティへ参加してくれる人を増やす」ことを目標にします。 具体的には、「関西のPHPエンジニアが登壇したくなる施策」や「関西のPHPエンジニアが参加したくなる施策」、「初心者と上級者の溝を埋めるためのトーク募集施策」、「今まで技術イベントに行ったことがない人がコミ
フリーランス・副業における案件数が多いプログラミング言語は何か。フリーランス・複業・副業の求人マッチングサービス「SOKUDAN(ソクダン)」を運営するCAMELORS(東京都渋谷区)の調査によると、1位は「JavaScript」(案件比率21.2%、月収87万円)だった。 JavaScriptは、Web開発におけるフロントエンドからバックエンドまで幅広く使用されるプログラミング言語。汎用性の高さとWeb開発において不可欠な存在であることから案件数が多く、今後も増え続けていくと予想されている。 ランキング2位は「PHP」、3位は「Python」 続く2位は、主にサーバーサイドでのWeb開発に使用される「PHP」(同13.0%、81万円)がランクイン。Webサイトの大部分がPHPで動作していることから案件数は多いが、開発者コミュニティーの中における人気には波がある。 3位は読みやすさと簡潔さ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く