fuka’s diary

A blog that shares my knowledge.

2022-01-01から1ヶ月間の記事一覧

PHPにおけるプリペアドステートメントの使用

プリペアドステートメントとは、SQLの可変部分を変数のように扱う方法です。 可変部分に与えられる値を、安全にSQL構文に組み込むことが可能です。 つまり、SQLインジェクションを防げるわけですね。ただし、いくつか分かりづらい仕様があるため、知識を共有…

PHPでのMIMEタイプ取得にはmime_content_typeを使いましょう

PHPにおけるファイルのMIMEタイプ取得にはmime_content_typeを使いましょう。 一部で非推奨とする誤った情報が根強いようですが、これは2016年までの話です。 今も一部のドキュメントでは非推奨と表示されていますが、それは誤りです。mime_content_typeが取…

オブジェクト指向プログラミングとは何か

オブジェクト指向プログラミングとは何か? ある人は「多態性」、ある人は「多重定義(オーバーロード)」、ある人は「依存性の注入」として、オブジェクト指向プログラミングを説明するでしょう。 継承、仮想・抽象メンバー、オーバーライド、カプセル化な…

PHPにおけるAES暗号化アルゴリズムGCM/CBCモードの使用

PHPではopenssl_encrypt、openssl_decryptを用いて対称暗号化アルゴリズムを使用できます。 クセモノなのが、$options引数と、$iv引数です。 ここを誤ると脆弱性を書き込んでしまうので、知識を共有します。 $options引数 公式マニュアルにある通り、以下の…