タグ

phpに関するmasudaKのブックマーク (162)

  • PHPは代入と参照の違い | 2013-03-07 - bravewood の日記

    http://ameblo.jp/nikko-inma/entry-11122429825.html http://b.hatena.ne.jp/entry/ameblo.jp/nikko-inma/entry-11122429825.html ふむふむ、なになに、PHPはクソ言語で、C++もVBもクソで、 きっちり書きたいときはC きっちり書きたいときはC きっちり書きたいときはCイスから転げ落ちるわ!!! ちょっとこれはPHPerとしては突っ込まざるを得ない。 いつ突っ込むかって? 今でしょ!! とりあえず上記サイトで書かれてるサンプルじゃあ代入と参照が深く理解できないだろうってこともあり、その部分補足してみよう。 まずサンプルプログラム <?php $a = 1; xdebug_debug_zval( 'a' ); $b = $a; //これはただの値の代入(ただしこので時点でbの変

    PHPは代入と参照の違い | 2013-03-07 - bravewood の日記
    masudaK
    masudaK 2018/09/29
  • PHP と SAPI と ZendEngine3 と

    導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来についてshinjiigarashi

    PHP と SAPI と ZendEngine3 と
    masudaK
    masudaK 2018/04/21
    濃厚だった
  • PHPStanで始めるPHPのための静的解析 #phperkaigi

    こんにちは。最近メルペイに異動になった @hiraku です。 2018年3月10日(土)に、PHPerKaigi 2018というイベントで登壇してきました。「PHPStanで始める継続的静的解析」ということで、メルカリで使用しているPHPStanというツールについて解説しました。 phperkaigi.jp 発表内容を短くまとめると メルカリではPHPStanというツールをCIフローに組み込み、PHPコードの静的解析を行ってコードの信頼性向上に努めています。 PHPStanはautoloadファイルを解釈し、一部のコードを実行することで解析の高速化を行っており、よくできています。 とはいえ、PHPに対して可能な解析に限界はあるので、テストも合わせて行っていきましょう。 大事なのは、品質向上のアプローチが用意され、心配せずにリリースできることです。 autoloadを認識するということ ス

    PHPStanで始めるPHPのための静的解析 #phperkaigi
  • 選定した技術が1年で死んだ話 | そど

    今年の夏頃から、特にサービスとして出すわけではなく、社内で使っているシステムのリプレースを行う事になりました。主な目的はレガシーすぎる設計をある低度モダンにする事、そして他のシステムと連携出来るようにする事、です。 対象のシステム 見積書や請求書などを管理・発行している。機能はそれなりに多いがUI操作はFormベース、テーブルタグで諸情報を表示するシンプルな物。ノンフレームワークで1画面1PHPファイルな古き良き時代のコード。おそらく10年ぐらい?稼働している。当初はPHP 5.1、PostgreSQL 8.x系だったが、現在はPHP 5.6とPostgreSQL 9.6で稼働しています。 その他の社内システム かつてはノンフレームワークだったり、太古のバージョンのCakePHPだったり、PHPが4系だったりしたが、概ねCodeIgniter 3系最新版 + PHP 5.6~7.1 + P

    masudaK
    masudaK 2018/03/13
  • 同じように見えて異なる PHP の文字列についての話 - do_aki's log

    はじめに 記事は PHP Advent Calendar 2017 18日目 です。 先に断っておきます。 この記事の内容は、 php スクリプトを書く上で全く必要のない知識です。 知ってすぐ何かに役立つような情報を求めていたらごめんなさい。 https://qiita.com/advent-calendar/2017/php にはもっとたくさんの素晴く役立つ記事がありますのでどーぞ。 なお、検証に利用した php は 7.2.0 です。 PHP の文字列 PHP の文字列は、どれも同じ "文字列" ではあるのですが、中身がちょっと違うとことがあるのをご存知でしょうか。 例えば、 <?php $str1 = 'A'; $str2 = sprintf('%s', 'A'); `$str1` と `$str2` はどちらも同じ `'A'` という文字列になりますが、違いがあります。 (変数名

    同じように見えて異なる PHP の文字列についての話 - do_aki's log
    masudaK
    masudaK 2017/12/19
    勉強になる。
  • PHP7で宇宙船演算子を使いこなすぞ - Qiita

    まずはPHP7リリースおめでとうございます!!! PHP 7.0.0 Released なんだか記念すべき日にAdvent Calendarを入れてしまって恐縮です。その割にすごい小ネタで書いてしまった…。 ここからPHP7では宇宙船演算子<=>が導入されます。だいたいこういう意味の演算子ですね。 // <=>と同じ意味の関数 function compare($a, $b) { if ($a < $b) { return -1; } elseif ($a > $b) { return 1; } else { return 0; } } compare(1, 2); // -1; 1 <=> 2; // -1; ユースケース的にはusort(), uasort(), uksort()との組み合わせで用いられるので、この機会にPHPにおける配列の並び替えについてまとめてみることにします

    PHP7で宇宙船演算子を使いこなすぞ - Qiita
    masudaK
    masudaK 2017/12/07
    おぉぉ
  • PHP - The Wrong Way

    概要 PHPプログラミングの世界では、ある一定のトレンドが「モダンPHP」として、一部の人によって (彼らの書籍やウェブサイト上で) 強烈に広められ、他のアプローチは、遅れていたり、愚かだったり、あるいは単に間違いだとみなされて、眉をひそめられています。 それらの人々は、彼らの物事のやり方を他人に追従させようと、飽くなき努力を続けているように見えます。 このウェブサイトは、PHP プログラミングに関する現実的な見解を示すために作られました。流行りのトレンド、理論、学問的な教示ではなく、経験と実践の帰着を書き記した視点です。 ウェブサイト PHP - The Wrong Way は生きたドキュメントですので、より多くの情報が明らかになるにしたがって更新され続けます。 お気軽にコントリビュートしてください。 翻訳 ドイツ語 英語 フランス語 日語 インドネシア語 トルコ語 ペルシャ語 ポルト

  • 「Lean Architecture / DCI Evening」参加レポート

    2017年10月18日、James Coplienさんとその奥様であるGertrud Bjørnvigさんをお招きして、「Lean Architecture / DCI Evening 」というイベントを開催しました。日ではソフトウェアパターンやアジャイルのリーダーとして知られるJames Coplienさんは、『 マルチパラダイムデザイン 』(1998年)でドメインとドメイン間の関係を中心に据えた設計パラダイムを提唱していました。Coplienさんは2009年、MVCアーキテクチャの考案者である Trygve Reenskaug さんと共に「DCIアーキテクチャ」を発表しました。2010年、CoplienさんはGertrudさんとともに書籍『 Lean Architecture 』を上梓、トヨタ生産方式をソフトウェアアーキテクチャに適用するリーンアーキテクチャについて、DCIアーキテク

    「Lean Architecture / DCI Evening」参加レポート
  • PHP 2大 web フレームワークの徹底比較!

    PHP 2大 web フレームワークの徹底比較!1. PHP 2大 web フレームワークの 徹底比較! サポーターズ勉強会@株式会社ウィルゲート Room0 2. 池添 誠(いけぞえ まこと) • 開発グループ コンテンツユニット所属 • 2015年にウィルゲートに新卒入社(3年目) • クラウドソーシングサービスのサグーワークスの開発 • 今日は CakePHP 担当 2 自己紹介 3. 池添 誠(いけぞえ まこと) • 開発グループ コンテンツユニット所属 • 2015年にウィルゲートに新卒入社(3年目) • クラウドソーシングサービスのサグーワークスの開発 • 今日は CakePHP 担当 3 自己紹介 テストコード いいぞ 4. 岡田 正平(おかだ しょうへい) • 開発グループ ソリューションユニット所属 • 2015年にウィルゲートに新卒入社(3年目) • webコンサルティ

    PHP 2大 web フレームワークの徹底比較!
    masudaK
    masudaK 2017/11/09
  • PhpStorm + Docker for Mac(docker-compose)での PHPUnit と Remote Debug の設定 - Shin x Blog

    PhpStorm から Docker for MacDocker コンテナ内で PhpUnit のテスト実行や Remote Debug を行うための設定です。 下記バージョンにて構築を行いました。 PhpStorm 2017.2.4 Docker for Mac 17.09.0-ce-mac35 PHP 7.1( php:7.1-apache ベース ) Xdebug 2.5 サンプルプロジェクトの取得 サンプルプロジェクトを用意したので、このプロジェクトをベースに設定を行います。このプロジェクトには、初期状態の Laravel アプリケーション(5.5)が含まれています。 github.com git で clone して、make を実行すると composer install と docker-compose up が実行されます。ブラウザで、 http://localhos

    PhpStorm + Docker for Mac(docker-compose)での PHPUnit と Remote Debug の設定 - Shin x Blog
  • Laravel の脆弱性 CVE-2017-14775 の対処法 - Innovator Japan Engineers’ Blog

    こんにちは。エンジニアの @localdisk です。2017/09/27に CVE-2017-14775 という Laravel の脆弱性が報告されました。CVE-2017-14775 はオートログイン処理に*1タイミング攻撃の脆弱性があるというものです。 タイミング攻撃についてとその対策については下記エントリに詳しくまとまっています。 PHP体でタイミング攻撃を防御できるようになります | yohgaki's blog この脆弱性は 2017/09/21 にリリースされた 5.5.10 で修正されています。対象のクラスは下記になります。 Illuminate\Auth\DatabaseUserProvider Illuminate\Auth\EloquentUserProvider 修正された PR は下記になります。 [5.5] [Security] Close remember_

    Laravel の脆弱性 CVE-2017-14775 の対処法 - Innovator Japan Engineers’ Blog
  • includeって書きたくない僕たちのためのオートローディングとComposer - Qiita

    こんにちはこんにちは、PHP書いてますか? include_once してますか? それともキミは require_once 派? ところで、現代的なPHPではクラスファイル(ここではclass, trait, interfaceを含む定義ファイル)では、わざわざファイルをinclude/requireしなくても自動的に読み込む機能をカンタンに構築できる環境があるので、紹介いたします。 この記事は手を動かして動作確認しながら読めるように構成してありますので、斜め読みするだけではもったいないですよ ヾ(〃><)ノ゙ はじめに 今回の記事ではクラスの自動ロード(オートローディング)の概要に絞って解説しますが、名前空間の文法や細かい説明を含めて包括的に解説した記事は、既にWEB+DB PRESS Vol.91|技術評論社にて「PHP大規模開発入門 第12回 名前空間とオートローディング」として発

    includeって書きたくない僕たちのためのオートローディングとComposer - Qiita
    masudaK
    masudaK 2017/10/13
  • PHP7調査(31)暗号論的に安全な疑似乱数生成器(CSPRNG)を提供する新関数 - Qiita

    PHP5までは暗号論的に安全な疑似乱数生成器(CSPRNG)を提供する標準関数がなかったため、CSPRNGが必要な場合に自分で明示的に/dev/urandomにアクセスしたりしていました。opensslエクステンションおよびmcryptエクステンションもCSPRNG関数を提供していますが1、どちらも必須のエクステンションでは無いため、ライブラリなどでは採用しにくい状況があったはずです。 PHP7から、どの環境でも動くCSPRNG関数としてrandom_bytes()とrandom_int()の2つが新規実装されます。 <?php // ランダムな2バイトの文字列を返す。各バイトは0x00から0xffのどれか。 var_dump(bin2hex(random_bytes(2))); // 5以上9以下の整数をランダムに返す var_dump(random_int(5,9)); 実装 Wind

    PHP7調査(31)暗号論的に安全な疑似乱数生成器(CSPRNG)を提供する新関数 - Qiita
  • PHP: openssl_random_pseudo_bytes と mcrypt_create_iv の比較

    PHP 5.5 でパスワードハッシュ関数が導入されるPHP: パスワードハッシュライブラリのコードスニペットPHP: PBKDF2 を使ってパスワードハッシュを生成するPHP: 疑似乱数の文字列を生成するPHP: openssl_random_pseudo_bytes で疑似乱数を生成するPHP: openssl_random_pseudo_bytes と mcrypt_create_iv の比較PHP: フォームに CSRF 対策のトークンを導入するPHP: フォームに CSRF 対策のトークンを導入する (その2)JavaScript: CSRF 対策のトークンヘッダーを送信する ランダムな文字列を生成するにはファイル関数を使って /dev/urandom に直接アクセスするやりかたがもっとも明快であり、OS のしくみを学ぶ機会を提供するので、教育的でもある。徳丸でもそのやりかたが採

    PHP: openssl_random_pseudo_bytes と mcrypt_create_iv の比較
  • PHPで本気で安全なパスワードを生成する - espresso3389の日記

    TwitterPHPで、いわゆる安全な秘密鍵を生成する方法っていうのがネットにほとんど記述されてないという事実に愕然としている。みんな、暗号乱数ぐらい勉強してくれ・・・。— Takashi Kawasaki (@espresso3389) April 12, 2014 なんて発言をしたら結構反響があったので、責任を取って、これならまぁ許せるというサンプルを出しておく。エントロピーの無駄遣いなどというぐらいの理解がある人は自分で実装してください。マジ実装すると結構面倒なので諦めました。 コピペするならここからどうぞ <?php // パスワードに使っても良い文字集合 $password_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $password_chars_count = strl

    PHPで本気で安全なパスワードを生成する - espresso3389の日記
  • htmlspecialcharsは不正な文字エンコーディングをどこまでチェックするか

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2009年9月30日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、PHPhtmlspecialchars関数の第三パラメータ(文字エンコーディング指定)により、どこまで文字エンコーディングの妥当性チェックをしているかを報告します。 2007年4月に、寺田氏(id:teracc)の素晴らしいエントリ「htmlspecialcharsと不正な文字の話」により、htmlspecialcharsは、第三パラメータの文字コードを実質的に無視しており、不正な文字エンコーディングが指定された場合、その文字はチェックされずにすり抜けてしまうという結果が報告されています。

  • phpMyAdminにおける任意スクリプト実行可能な脆弱性の検証 - ockeghem's blog

    phpMyAdmin(3.3.10.2未満、3.4.3.1未満)には、リモートから任意のスクリプトが実行可能な脆弱性があります。このエントリでは、この脆弱性が発生するメカニズムと対策について報告します。 概要 phpMyAdminには下記の2種類の脆弱性の組み合わせにより、リモートから任意のスクリプトを実行させられる脆弱性があります。 CVE-2011-2505 CVE-2011-2506 該当するバージョンは以下の通りです。 phpMyAdmin バージョン3.3.10.2未満 phpMyAdmin バージョン3.4.3.1未満 影響を受ける条件は、上記バージョンのphpMyAdminを使用していることに加えて、以下をすべて満たす場合です。 setup/index.phpとsetup/config.phpを外部から実行できる phpMyAdminのconfigディレクトリが存在し、PHP

  • PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋

    下記の文章は、PHPのセッションIDに対する攻撃についてFull Disclosure MLに2010年に投稿された文章を和訳したものです。訳者の意見としては、攻撃の成立条件は極めて厳しく、そこまで深刻度は高くないと考えています。 とはいえ、疑似乱数列への攻撃がどのように行われるのか、その可能性を示す文章は比較的珍しいもののように思います。暗号論的に安全な疑似乱数とは何か、なぜ必要なのかといった内容を間接的に教えてくれる面白い文章だと感じましたので、今回翻訳してみました。 (以下、原文の和訳です) 原文:http://seclists.org/fulldisclosure/2010/Mar/519 Advisory (c) 2010 Andreas Bogk <andreas () andreas org> Product:PHP Version:5.3.2 以降 脆弱性の種類:暗号論的な

    PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋
  • 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか

    この記事はPHPアドベントカレンダー2014の22日目の記事です 。 2002年3月に公開されたIPAの人気コンテンツ「セキュアプログラミング講座」が2007年6月に大幅に更新されました。そして、その一節がPHPerたちを激しく刺激することになります。 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 セキュアプログラミング講座(アーカイブ)より引用 「PHPを避ける」とまで言われてしまったわけで、当然ながらネット界隈では炎上を起こし、現在はもう少しマイルドな表現に変わっています(参照)。 稿では、当時のPHPの状況を振り返る手段として、この後PHPセキュリティ機能がどのように変化

  • Attack method of open redirect using basic authentication / Basic認証を用いたオープンリダイレクトの攻撃手法 - http80

    僭越ながら、脆弱性"&'<<>\ Advent Calendar 2016 の6日目の記事です。 端的に言うと、URLにBasic認証を埋め込む方法があるのですが、これをオープンリダイレクトの攻撃に応用できます。 この手法は昨年に発見し、もう1年以上経っているので、既にご存知の方もいるかと思われますが、Web初出でしょうか。日々の健全な脆弱性診断にご活用ください。 www.adventar.org ●オープンリダイレクトの脆弱性 診断ベンダによっては「オープンリダイレクタ」「外部サイトへ誘導可能」といったタイトルで揺らぎはありますが、質的には同じです。*1 実はこの脆弱性、OWASP TOP 10(2013)に仲間入りしている悪いヤツです。 Top10-2013-A10: Unvalidated Redirects and Forwards (原文) 日語版PDFでは、未検証のリダイレ

    Attack method of open redirect using basic authentication / Basic認証を用いたオープンリダイレクトの攻撃手法 - http80