タグ

PHPに関するel-condorのブックマーク (8)

  • PHPにはエスケープ関数が何種類もあるけど、できればエスケープしない方法が良い理由

    このエントリは、PHP Advent Calendar 2021 の20日目のエントリです。19日目は @takoba さんによる PHPプロジェクトのComposerパッケージをRenovateで定期アップデートする でした。 SQLインジェクションやクロスサイトスクリプティング(XSS)の対策を行う際には「エスケープ処理」をしましょうと言われますが、その割にPHP以外の言語ではあまりエスケープ処理の関数が用意されていなかったりします。それに比べてPHPはエスケープ処理の関数が非常に豊富です。これだけ見ても、PHPはなんてセキュアなんだ! と早とちりする人がいるかもしれませんが、しかし、他言語でエスケープ処理関数があまりないのはちゃんと理由があると思うのです。 稿では、PHPのエスケープ処理用の関数を紹介しながら、その利用目的と、その関数を使わないで済ませる方法を説明します。 SQL

    el-condor
    el-condor 2021/12/22
    PHPを安全に使うのは私には難しそう。万が一使うことがあれば、フレームワークを積極的に利用するようにしたい。
  • 米Facebook、「HHVM」でのPHPサポートを終了する方針を発表 | OSDN Magazine

    米FacebookのHHVM開発チームは9月12日、PHPのサポートを段階的に終了することを発表した。HHVMはPHPプログラムを高速に実行する環境として開発がスタートしたが、独自言語「Hack」の誕生やPHP7の登場によってPHPサポートが廃止されることになる。 HHVM(HipHop Virtual Machine)はPHPおよびHackで書かれたプログラムを高速に実行する環境。JITコンパイラを用いて高速な性能を実現しつつ、PHPが提供する開発の柔軟性を維持するのが特徴。PHPはバージョン5、7(一部)をサポートしている。最新版は8月末に公開したバージョン3.28。 HHVMはPHPの高速実行環境としてスタートしたが、現在ではPHPを拡張した独自言語であるHackの実行環境という役割も担っており、PHP5についてはすでに年初にサポート終了を発表している。 今回発表した計画によると、1

    米Facebook、「HHVM」でのPHPサポートを終了する方針を発表 | OSDN Magazine
    el-condor
    el-condor 2018/09/14
    マジか。こういう事例、他の言語でもあるんだっけ(ある言語のVMがその言語では使わないはずのVM命令を持つ事例は知ってる)
  • PHPのis_numeric関数は使うべきでないという話 - hnwの日記

    稿は私が前職の技術ブログで執筆した記事「そのis_numeric()は適切ですか?」を改題・再編集して掲載するものです。前職には許可を取ってあります*1。 稿ではPHPの関数is_numeric()の使いどころについて問題提起をしてみます。 is_numeric関数とは さて、まずはis_numeric()のリファレンスマニュアルを見てみましょう。 bool is_numeric ( mixed $var ) 指定した変数が数値であるかどうかを調べます。数値形式の文字列は以下の要素から なります。(オプションの)符号、任意の数の数字、(オプションの)小数部、 そして(オプションの)指数部。つまり、+0123.45e6 は数値として有効な値です。十六進表記(0xf4c3b00c など) や二進表記 (0b10100111001 など) は認められません。 http://php.net/m

    PHPのis_numeric関数は使うべきでないという話 - hnwの日記
    el-condor
    el-condor 2018/04/17
    is_numericがこうなること自体は違和感ないし、普通に10進数値型が欲しいなら正規表現を使えという話ではあるが、案外一般的ではないのだろうか
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
    el-condor
    el-condor 2017/07/18
    20年前くらいのPerlでDBI使っている記事を読んでいるような気分。エンコーディング周りとかは随分違うけどさ…
  • 先日Javaで開発したプログラムを納品したら「Javaで開発するのは一般的ではないと聞いたので、WordPressなどと同様にPHPで書き直してほしい」とクライアントから言われてビビった…。 - xfs の

    先日Javaで開発したプログラムを納品したら「Javaで開発するのは一般的ではないと聞いたので、WordPressなどと同様にPHPで書き直してほしい」とクライアントから言われてビビった…。 <blockquote class="hatena-bookmark-comment"><a class="comment-info" href="http://b.hatena.ne.jp/entry/293080513/comment/xfs" data-user-id="xfs" data-entry-url="http://b.hatena.ne.jp/entry/anond.hatelabo.jp/20160704005254" data-original-href="http://anond.hatelabo.jp/20160704005254" data-entry-favicon="h

    先日Javaで開発したプログラムを納品したら「Javaで開発するのは一般的ではないと聞いたので、WordPressなどと同様にPHPで書き直してほしい」とクライアントから言われてビビった…。 - xfs の
    el-condor
    el-condor 2016/07/04
    とてもつらそうな現場とクライアント...
  • 【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方

    SQLインジェクションを・・・駆逐してやる!! この世から・・・一匹残らず!! (PHPカンファレンス2015)

    【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
    el-condor
    el-condor 2015/10/08
    SQLテンプレが使えるDBアクセスライブラリだと、JavaだとiBatisとかあったけれど、PHPだとデファクトスタンダード的なものはないのかしらん。
  • 【導入決定!】PHP7で実装されるスカラー型宣言とは? | 東北ギーク

    * NaN でなく PHP_INT_MIN から PHP_INT_MAX までの範囲内の値に限る ** 数値形の文字列のみ。数値形の文字列に他の文字が続く場合も使えるが、 Notice が出る *** __toString メソッドを持つもののみ 弱い型検査モードで行われる暗黙の型変換は、PHP が従来他の構文(算術演算子や条件式、組み込み関数の呼び出しなど)で行ってきたのと同等のものです。 厳密モード 一方、厳密な型検査のモードを使う場合は、関数は宣言されたのと正確に一致する型のみを受け付けるようになります(int → float の拡大変換をのぞく)。 ファイルの先頭に declare(strict_types=1); と書くことで、そのファイル内での関数呼び出しの際に厳密モードでの型検査が行われるようになります*1。 以下のように使います。 <?php declare(strict_

    【導入決定!】PHP7で実装されるスカラー型宣言とは? | 東北ギーク
    el-condor
    el-condor 2015/03/20
    PHPむずかしい
  • すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita

    ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末

    すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita
    el-condor
    el-condor 2013/12/12
    PHPの世界観は難し過ぎて着いて行けない。
  • 1