PHPにおけるJSON浮動小数点数の精度制御と文字列表現の実装

PHPのjson_encode()は、浮動小数点値をJSON文字列に変換する際、デフォルトで末尾のゼロ(例:1.00 → 1.0 → 1)や不要な小数部を削除します。これは内部的な表示形式によるものであり、JSON仕様上は問題ありませんが、外部システム(特にJavaやTypeScriptなど型厳密な環境)との連携時に署名検証失敗や比較不一致を引き起こすことがあります。 標準オプションによる精度保 ...

7月19日 01:05 投稿

CTF WriteUp:ファイルヘッダ解析とPNG CRC問題の解法

破損した圧縮ファイル 基礎知識 一般的なファイルのヘッダとフッタ https://devtool.tech/filetype 1、画像ファイル JPEG ファイルヘッダ:FF D8 FF ファイルフッタ:FF D9 TGA 非圧縮の先頭4バイト 00 00 02 00 RLE圧縮の先頭5バイト 00 00 10 00 00 PNG ファイルヘッダ:89 50 4E 47 0D 0A 1A 0A ファイルフッタ:AE 42 60 82 GIF ファイルヘッダ:47 49 46 38 39(37) 6 ...

7月18日 19:57 投稿

PHPによるデータベース操作の実装

データベース連携Webアプリケーションの構築 この実装では、ユーザー情報を管理するWebアプリケーションをPHPとMySQLで構築します。データベーステーブルは名前、性別、年齢、住所、趣味の5つのフィールドで構成されています。 ログイン画面の実装 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> & ...

7月18日 01:18 投稿

PhpSpreadsheet: ワークブックの操作と対応ファイル形式

PhpSpreadsheetライブラリの中心となるのはSpreadsheetクラスです。このクラスは、ワークブックに含まれるシート群、ドキュメントのセキュリティ設定、およびメタデータへの参照を管理します。PhpSpreadsheetの概念を簡潔に表現すると、SpreadsheetクラスはExcelの「ワークブック」そのものを表します。 ワークブックの作成方法は主に二つあります。一つは既存の電子計算 ...

7月17日 22:36 投稿

ミドルウェアの設定方法

全てのルートに対して同時にミドルウェアを指定する方法 \app\Http\Kernel.phpファイル内でグローバルミドルウェアを登録します。 protected $globalMiddleware = [ \App\Http\Middleware\ProxyTrust::class, \Vendor\CorsManager\HandleCorsRequests::class, \App\Http\Middleware\MaintenanceModeCheck::class, \Illuminate\Foundation\Http\Middleware\ ...

7月15日 19:46 投稿

非技術者向けSQLクエリツールの構築方法:PHPでゼロ依存の簡易ツールを実装

背景と課題 業務において、マーケティング担当者や管理職が頻繁にデータ照会を依頼してくるケースがあります。簡単なSQL文で解決できる問題でも、相手がSQLを学ばず、データベースクライアントの導入を拒否するため、開発作業が中断される状況が発生します。 要件定義 SQL未経験者でも直感的な操作が可能 クライアントアプリケーション不要のブラウザベース 開発環境に影 ...

7月14日 16:52 投稿

PHPでのレジューム可能なファイル転送の実装

概要 リソースファイルを暗号化する必要があるビジネス要件に対応するため、PHPインターフェースを介してヘッダー情報を変更し、ストリーム形式でデータを転送する方法を実装しました。 テスト中に判明した問題として、iOSデバイスにおいてファイルサイズが大きい場合(おおよそ10MB以上)、複数回のAPI呼び出しが自動的に発生します。このような状況でレジューム可能な ...

7月11日 19:52 投稿

PHPコードレビューの課題2: filter_var()関数の脆弱性

脆弱性分析 以下のコードを例にとって、XSS(クロスサイトスクリプティング)脆弱性について調査します。 <?php require 'vendor/autoload.php'; class Template{ private $twig; public function __construct() { $templateString = 'img src="https://loremflickr.com/320/240"><a href="{{url|esc}}">次のスライド »</a>'; ...

7月10日 23:39 投稿

PHP のための柔軟なスキーマ検証ライブラリ構築

背景と目的 PHP開発において、入力データの検証は避けて通れない作業です。必須項目、データ型、最大長、メール形式など、さまざまなバリデーションが必要になる場面は日常的です。既存のフレームワークには検証機能が備わっていますが、軽量なプロジェクトや構造化されたデータを検証したい場面では、柔軟性に欠けると感じることがありました。 そのため、私は以下のよ ...

7月10日 19:38 投稿

Typechoプラグイン開発の実践ガイドとチュートリアル

概要 Typechoは軽量で使いやすく高速なPHPベースのブログエンジンであり、拡張性を備えたプラグインシステムを提供しています。この記事では、Typechoプラグインの開発プロセスを実際の例を通じて説明し、独自の機能拡張を作成するためのガイドを提供します。 開発環境の準備 Typechoプラグインの作成に着手する前に、以下の環境を整える必要があります: PHPとMySQLが動 ...

7月10日 01:32 投稿