PHPカンファレンス小田原2024 の発表資料です。 https://phpcon-odawara.connpass.com/event/296492/ https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26d…
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニアの技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXk
ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用 作者:田中 ひさてる技術評論社Amazon 予約してまで買ったものの、なかなか時間が取れず、読めていなかった『ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用』をようやく読み終わりました。 筆者である田中ひさてるさん自身で描かれた表紙の可愛らしさからは想像もできないハードな内容なので、一気に読もうとすると「分かった気」になるだけで全然理解していなかった、ということになりがちなので、3回くらいぐるぐる読むといいと思います(そうです、この本は本文もイラストも丸っと同じ人が書いているのです!!)。 目次 第1章 クリーンアーキテクチャ 第2章 パッケージ原則 第3章 オブジェクト指向 第4章 UML(統一モデリング言語) 第5章 オブジェクト指向原則 SOLID 第6章 テスト駆動開発 第7章 依存
注釈:追記すべき情報がある場合には、その都度このページを更新する予定です。 概要 近年、インターネット境界に設置された装置の脆弱性の悪用を伴うネットワーク貫通型攻撃が脅威となっています。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言語を用いてデスクトップアプリケーションを開発可能にするフレームワーク「NativePHP」が登場しました。現在アルファ版として公開されています。 PHPランタイムとElectron/Tauriをバンドル NativePHPはHTML、CSS、JavascriptそしてPHPを用いてWindows、Mac、Linuxのクロスプラットフォームに対応したデスクトップアプリケーションを開発可能にするフレームワークです。 PHPランタイムと、アプリケーションからホストOSへアクセスするためのクラス群、Web技術でデスクトップアプリケーションを開発可能にするフレームワークであるElectronもしくはTauriをバンドルし、アプリケーションとしてビルドする機能を備えています。 現時点ではPHPのフレームワークとしてLaravelをベースにしていますが、特定のフレームワーク依存をなくしていく方向
このエントリは、PHP Advent Calendar 2021 の20日目のエントリです。19日目は @takoba さんによる PHPプロジェクトのComposerパッケージをRenovateで定期アップデートする でした。 SQLインジェクションやクロスサイトスクリプティング(XSS)の対策を行う際には「エスケープ処理」をしましょうと言われますが、その割にPHP以外の言語ではあまりエスケープ処理の関数が用意されていなかったりします。それに比べてPHPはエスケープ処理の関数が非常に豊富です。これだけ見ても、PHPはなんてセキュアなんだ! と早とちりする人がいるかもしれませんが、しかし、他言語でエスケープ処理関数があまりないのはちゃんと理由があると思うのです。 本稿では、PHPのエスケープ処理用の関数を紹介しながら、その利用目的と、その関数を使わないで済ませる方法を説明します。 SQL用
0 time_nanosleep <internal>:-1 1 PhpProfiler\Lib\Loop\LoopMiddleware\NanoSleepMiddleware::invoke /home/sji/work/php-profiler/src/Lib/Loop/LoopMiddleware/NanoSleepMiddleware.php:33 2 PhpProfiler\Lib\Loop\LoopMiddleware\KeyboardCancelMiddleware::invoke /home/sji/work/php-profiler/src/Lib/Loop/LoopMiddleware/KeyboardCancelMiddleware.php:39 3 PhpProfiler\Lib\Loop\LoopMiddleware\RetryOnExceptionMiddlew
VMwareのWasm Labsは、Webブラウザ上でWordPressを実行可能にしたデモを公開しました。 デモページをWebブラウザで開くと、実際にWebブラウザ上でWordPressが実行されます。 WordPressはオープンソースで開発されている代表的なCMSです。PHPで開発されています。バックエンドデータベースとしてMySQLが使われることが一般的ですが、今回のデモではSQLiteが使われています。 今回のデモを公開したVMwareのWasm Labsは、C言語をWebAssemblyバイナリにコンパイルできるEmScriptenコンパイラを用いて、PHPとSQLiteのコンパイルを行っています。 さらにメモリ上にファイルシステムを構築し、Service Workerをプロキシとするなど追加でWordPressを実行可能な環境を作り上げ、デモを作成したとのことです。 WebA
みなさん、こんにちは。m(@the_art_of_nerd)です。 今回は私がWebサーバーをフォレンジック調査を担当した際に発見した、任意の拡張子からPHPを実行する方法について紹介します。 背景 Webサーバーが攻撃者によって侵害されたという事案で、フォレンジック調査を実施した際に発見したテクニックです。(正規の仕様を悪用) Webサーバーの侵害のため、WebShellの設置を疑い、まず拡張子ベースで不審なファイル(改ざん・作成)が存在しないか調査していたところ、いくつか不審なファイルは発見されましたが、どうしてもWebShellのような機能を有するファイルだけ見つかりませんでした。 そこで、拡張子で見ていく調査から各ディレクトリごとに気になるファイルが存在しないかの調査に切り替えたところ、1つだけ明らかにWebサーバーのコンテンツとして違和感のある"ファイル名"が付けられたCSSファ
<? include("abc.php"); include("def.php"); include("conf.php"); include("db.php"); include("some.php"); include("what.php"); Define("NUM", 100); class super_calc extends great_calc { /* * * * コンストラクタ * * * * */ public function super_calc($initial_num){ $this->db = DB::getDb(DSN); $this->initial_num = $initial_num; } /* * * * チェック * * * * */ public add_ok($add_num){ $res = $this->addable($add_num);
PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2021/11/26にリリースされました 2021/07/20、PHP8.1がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。 というわけでPHP8.1で実装されるRFCを見てみましょう。 RFC Fibers 賛成50反対14で受理。 Fiberです。 PHPで非同期コードを書けるようになります。 $fiber = new Fiber(function (): void { $value = Fiber::suspend('fiber'); echo "レジュームした。$value: ", $value, "\n"; }); $value = $fiber
PHPのstringは任意のバイト列を扱えますが、JavaScript/JSONはUnicodeで扱える文字しか扱えません PHPのint / floatはプラットフォーム依存ですが、JavaScriptのnumberは整数と小数を型レベルで区別しません JSONのarrayに対応する型はPHPのarrayのうちリストであるものです PHPは配列(リスト)と連想配列を型レベルで区別せず、どちらもarrayです リストはキーが0からの抜けがない連番になっている要素が0個以上の配列です array_is_list()関数で連想配列とリストを判別できます array_values()で連想配列をリストに変換できます array_filter()の結果はフィルタされたキーがスキップされるのでリストではありませんが、結果をarray_values()に通すことでリストにできます JsonSerial
この記事のモチベーション 「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)
高町咲衣さんは、PHPコア開発者でありPHP8.4にて日本人として歴史上初めてのリリースマネージャーを務めた人物です。ほんの2年前まで、高町さんはOSSへのコントリビューション経験がゼロでした。「OSS開発は超人たちがするもので、自分とは遠い世界の出来事」だと、ハードルの高さを感じていたといいます。しかし、一歩を踏み出す勇気と日々の小さな積み重ねが、キャリアを大きく変えたのです。高町さんのこれまでの歩みには、エンジニアがOSSに挑戦する意義や成長のヒントが詰まっています。 BC Break修正から始まったOSSへの挑戦 ――まず、PHPのコア開発者やリリースマネージャーとして、どのような活動をされているのかを教えていただけますか? PHPコア開発者としては、主にPDO*1やBCMath*2を担当しています。PDOはコア開発者になる前からIssueを見ており、その延長でデータベース系の他の拡
JPCERT/CCでは、国内のWebサイトが改ざん被害を受け、不正なページが設置される事例を継続して観測しています。これらの事例では、不正に設置されたPHPスクリプト(以下、PHPマルウェア)により、ページにアクセスした訪問者が詐欺サイトや不審な商品販売サイトなどに誘導されることがわかっています。 今回は、複数の調査事例から得られた知見をもとに、国内のWebサイト改ざんで頻繁に見られているPHPマルウェアの詳細について紹介します。 被害事例 PHPマルウェアが設置されたWebサイトでは、アクセスした訪問者を詐欺サイトや不審な商品販売サイトなどに転送する不正なWebページが多数サーバー上に作成されます。図1は、ページにアクセスした際に表示されるラッキービジター詐欺サイトの例です。 図1:転送先の詐欺サイトの例 攻撃者は、コンテンツマネジメントシステム(以下、CMS)の脆弱性を悪用して、PHP
はじめに PHPでの開発において、コードの品質を高く保つことは、プロジェクトの成功に欠かせない重要な要素です。 これまで、コードフォーマッタ、リンター、静的解析といったツールは、それぞれ別のものを組み合わせて使うのが一般的でした。しかし、今回ご紹介する Mago は、これらの機能をたった一つに統合した、PHP界に現れたちょっと革新的なツールチェーンです。 私自身、普段のPHP開発では、次のようなツールを愛用していました。 PHPStan: 頼れる静的解析ツール PHP-CS-Fixer: コードを美しく整えるフォーマッタ これらのツールに大きな不満はなかったのですが、心のどこかで「静的解析、もう少し速くならないかな…」「ツールの設定がバラバラで、ちょっと面倒だな…」と感じていたのも事実です。 そこで今回は、最近注目を集めている Mago という、Rustで書かれた爆速PHPツールチェーンを
サイバーセキュリティ企業Bitdefenderの報告によると、脅威アクターがPHPの重大な脆弱性(CVE-2024-4577)を悪用して、暗号通貨マイナーやリモートアクセストロイの木馬(RAT)を配布する攻撃が急増している。 この脆弱性は、Windows系システム上でCGIモードで実行されているPHPに影響し、リモート攻撃者が任意のコードを実行することを可能にする。 この脆弱性は2024年6月7日に公開され、CVSS v3スコアは当初9.8(最大10点)と評価されたが、後に6.9に下方修正された。影響を受けるのはPHP 8.3.8未満、PHP 8.2.20未満、PHP 8.1.29未満のバージョンである。 攻撃は主に台湾(54.65%)、香港(27.06%)、ブラジル(16.39%)に集中しており、日本も1.57%の被害が報告されている。GreyNoiseの観測によると、2025年1月だけ
PHP 8.1へのアップグレードにまつわるまとめ PHP 8.1へのアップグレードには、mbstringにまつわるマニュアルに記述されない後方互換性のない変更が含まれることがあります。そのことを周知するべく、この記事を書くことにしました。 私てきめんは、PHPカンファレンス 2022にて、「治っていくmbstring 令和時代の文字化け」というタイトルでトークしています。以下スライドも参考にしてください。 Major overhaul of mbstringについて PHP 8.1から、Major overhaul of mbstringと呼ばれる、mbstringの大規模改修の内容が反映されるようになりました。困ったことに、RFC(Request For Comments)やChangelog、マニュアルにない内容で、mbstringを多用するPHPユーザーにとてつもない困惑をもたらすこ
2025/03/21-23 に中野セントラルパークカンファレンスで開催された PHPerKaigi 2025 にて、「php-fpm がリクエスト処理する仕組みを追う」を発表してきました。 発表資料 AI ツールの活用 事前確認 登壇サポート さいごに 発表資料 php-fpm が FastCGI リクエストを処理する仕組みを gdb によるステップ実行デモを中心にお話ししました。 gdb を使ったデモは概ね好評だったようで、仕組みを知ることの楽しさが共有できて嬉しかったです。技術の楽しさを共有できるのはこうしたイベントの良さの一つですね。構想段階ではデモは一部のみにして、スライドによる解説をメインにしようと思っていたのですが、紆余曲折を経てデモをメインにすることにしました。デモは見る側としても面白いですし、やっていても楽しいです。その場の状況に応じて臨機応変に対応しやすいのも良いですね。
2021/10/02, 03 にオンラインで開催された PHP カンファレンス 2021 にて「ドメインをモデリングして PHP コードに落とし込む」を発表しました。 発表資料 Sample code: https://github.com/shin1x1/domain-modeling-with-php Togetter: https://togetter.com/li/1783062 joind.in: https://joind.in/talk/650b0 ドメインモデルという共通概念をモデリングし、それをコードに反映するという内容です。 去年は事前に録画して自分で再生した のですが、今年はライブでやりました。やっぱりライブは良いですね。話し出しはモニタに向かって話す違和感がありましたけど、途中から調子が掴めてきました。 Discord をチラ見していたのですが、リアルタイムでどんど
バックエンドエンジニアのクラシマです。 2021/08/25(水)に、本番サーバのPHPを7.4.21 -> 7.4.22にバージョンアップしました。 renovateでプルリクエストが作られるので、追っかけるだけです。 tech.torana.co.jp AMIは前日に作ってあり、当日はLaunchTemplateの向き先を変更するためにterraform applyして、AutoScalingGroupからインスタンスの更新をするだけ。 や~便利になったなぁ、なんて作業してたらSlackが大騒ぎに・・・ 大惨事の一コマ 切り戻し! 急いで切り戻し!と判断したのは良いものの、まさかPHPのバージョンアップ起因だとはその時は思いもよらず。 当日deployしたアプリケーションや、Aurora MySQLの設定変更などを順次戻していきますが、一向に回復せず。 stg環境でも動作が同じだったの
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
この記事は弁護士ドットコム Advent Calendar 2024 の 21 日目の記事です。 はじめに リーガルブレイン開発室の tsuchiya です。 先日、セッション ID を JWT に内包するという記事を読みました。 "JWT=ステートレス"から一歩踏み出すための考え方 上記記事では、 セッション ID を内包した JWT を活用する ことについて紹介しています。 JWT の性質を最大限活用したもので、非常に共感できる内容でした。 本記事では上記記事をうけて、セッション ID を内包した JWT をセッション Cookie として使用する処理を PHP で実装してみたので、その内容について紹介します。 JWT とは 本記事では、JWT の詳細な仕様に関する説明は省略しますが、本記事を理解するうえで重要になる性質について簡単に紹介します。 JSON Web Token(JWT)
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く