タグ

phpに関するkanakogiのブックマーク (133)

  • FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション

    PHPカンファレンス小田原2024 の発表資料です。 https://phpcon-odawara.connpass.com/event/296492/ https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26ddc44897f0

    FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
    kanakogi
    kanakogi 2024/04/15
  • Macで複数のPHPのバージョンを切り替える方法 brew link/unlink

    PHPコマンドの切り替え すでにHomebrewで複数のバージョンのPHPをインストール済みということで話を進めます。php@8.0 から php@7.4 に切り替えるには次のようにします。 % brew unlink php@8.0 Unlinking /opt/homebrew/Cellar/php/8.0.17... 24 symlinks removed. % brew link php@7.4 Linking /opt/homebrew/Cellar/php@7.4/7.4.28_1... 25 symlinks created. If you need to have this software first in your PATH instead consider running: echo 'export PATH="/opt/homebrew/opt/php@7.4/bi

    Macで複数のPHPのバージョンを切り替える方法 brew link/unlink
    kanakogi
    kanakogi 2022/06/21
  • SPAセキュリティ入門~PHP Conference Japan 2021

    こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニア技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXkRead less

    SPAセキュリティ入門~PHP Conference Japan 2021
  • シェルを経由しないOSコマンド呼び出しがPHP7.4で実装された

    この記事はPHP Advent Calendar 2019の5日目の記事です。 はじめに 私は6年前に、PHP Advent Calendar 2013として「PHPだってシェル経由でないコマンド呼び出し機能が欲しい」という記事を書きました。その中で、OSコマンドインジェクション対策の根的かつ安全な対策は「シェルを経由しないコマンド呼び出し」であることを指摘した上で、末尾に以下のように書きました。 PHPコミッタのみなさま、PHP5.6の新機能として、シェルを経由しないコマンド呼び出しの機能を追加できませんか? 現実には当時からPCNTL関数にてシェルを経由しないコマンド呼び出しはできたのですが、当関数の使用が難しいことと、CLI版あるいはCGI版(FastCGIは可)のPHPでないとサポートされていないなどの制限があり、popenやproc_openなど使いやすいコマンド呼び出し関数に

    kanakogi
    kanakogi 2019/12/06
  • 分岐アンチパターン - Qiita

    「秩序のない分岐なんてほろんじまえ!!!!」 レガシーなシステムを触った時に、こう思ったことはあるのではないでしょうか。 私にもよくそう思うときがあります。 そんな絶望を生み出さないように分岐に関するアンチパターンと対策を考えてみました。 まず、なぜ生み出されるのかを書き出してみましょう。 秩序のない分岐 たくさんの分岐 →迷子になる ネストが多い →インデントが見づらい。 分岐ごとに条件が複雑 →覚えるのがつらい。 気づいたらスパゲッティコード →処理を追っている間にお腹が空き、スパゲッティをべちゃうので太る。 テストがしづらい。テストケースが作りづらい。 →テストをするためのテストが必要とか言い出してしまう。 ifだけに畏怖 →書きたかった。 分岐処理に出会った時、これだけの問題があることに気づきました。 私はもう絶望したくないし、私のように絶望する人を作りたくない。(そして太りたく

    分岐アンチパターン - Qiita
  • teratailに投稿されたメールフォームにCSRF脆弱性が残存した理由 | 徳丸浩の日記

    teratailに以下のような投稿がありました。 PHPでメールフォームを作成したので、脆弱性がないかアドバイスいただけないでしょうか。 エンジニアでもなければ、PHPもろくに書けない雑魚ですが、「php メールフォーム 作り方」でググって表示されるサイトを見ると、「んんんんん???」と思うところがあります。 これらを参考にしたり、コピペする方は、記述されているコードの良し悪しは判断できないかと思います。 そのような方々が参考にできるメールフォームを作りたいという思いで、調べて作りました。 周りに書いたコードを確認してもらえる人もいないので、皆様からのアドバイスがほしいです((_ _ (´ω` )ペコ 【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうかより引用 どれどれ…と確認すると、トークンのチェックが入っているにも関わらずクロスサイト・リクエストフォージ

    kanakogi
    kanakogi 2017/04/11
  • 【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうか。

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

    【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうか。
    kanakogi
    kanakogi 2017/04/10
  • PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記

    仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。 PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModule php5_module modules/libphp5.so ↓ LoadModule php7_module modules/libphp7.so memcache extensionがインストールできない PHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca

    PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記
    kanakogi
    kanakogi 2016/03/22
  • 楽に検証!値をチェックしてくれるfilter関数

    今回はバリデート関数をご紹介します。 いままではフォームの値をチェックするときってだいたいpreg_match関数などでチェックしていたのですが検証専用の関数がありました。 filter関数です。pregでチェックしなくても検証してくれるので楽です。 emailとかの精度になるとどこまで許容するかが問題になるのですが、携帯アドレスのようにアカウントにドットが複数つくとエラーになります。 各フィルターは実際に試したほうがよさそうですね。どれをスルーしてどれを止めるか。デモページで確認してみてください。 スポンサーリンク filter_var関数 バリデート関係や除去関係の関数が含まれています。それぞれの関数を見ていきましょう。下記はマニュアルに例を付け足したものです。 true/falseチェック filter_var(チェックしたい値, FILTER_VALIDATE_BOOLEAN, オ

    楽に検証!値をチェックしてくれるfilter関数
    kanakogi
    kanakogi 2015/08/24
  • $_GET, $_POSTなどを受け取る際の処理 - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 予備知識 PHPはフォームから送信された値などをコード実行開始に自動的に変数として使えるようにしてくれる非常に便利なプログラミング言語です.しかし,それをそのまま用いるとエラーが発生したり,脆弱性になってしまったりするケースがたくさんあります.使う前には適当なチェック処理が必要です. どういった変数が対象になるか 以下に挙げられた変数は,ユーザーが勝手に値や構造を書き換えたり,送信をそもそも行わずにアクセスしたりすることが可能な信用できない変数だと思ってください.例え,ラジオボタンで選択肢を限定していたり,隠し要素として埋め込んでいたりしたとしても,これに該当してしまいます.

    $_GET, $_POSTなどを受け取る際の処理 - Qiita
    kanakogi
    kanakogi 2015/08/23
  • phpでバッチ処理は控えるべき?メモリ解放しないよ。 - それマグで!

    アマゾンの検索をするとき、PHPでバッチ処理を書いた。PHPで大量のリクエストを発行してAmazonECS結果を見ていた。ふとメモリ消費量を見る。ちびりそうになる。メモリ消費量が上昇し続ける。unset()をしているが、メモリの消費量は変化しない。 立ち止まって考える。当たり前じゃないか。PHPはApacheのリクエスト毎に起動して、リクエスト終了時にメモリから全部消去される。バッチ処理が終わらないとメモリ解放されないのかね。処理が長くなれば不利じゃないか。繰り返し処理でメモリを再利用しない。なら、バッチの大量データを処理に不向きか。一応はコマンドラインで動きます程度なのね。 もし、PHPバッチ処理をするなら、バッチ処理の細切れな生成、消去を短時間に繰り返すしかないのね。 バッチ処理とは大量のデータを夜間などに処理する事。そう記憶している。他スクリプト言語も同じか。元もとメモリ管理が出来な

    phpでバッチ処理は控えるべき?メモリ解放しないよ。 - それマグで!
    kanakogi
    kanakogi 2015/02/26
  • 最低限書いておきたいPHPのDocコメント - Qiita

    最低限書いておきたいというよりは、最低限書いて下さいという私の切なる願いかもしれない。 そもそも何故Docコメントを書くのだろうか? メソッドの命名さえ正確に行えるならDocコメントという存在はほぼ必要無いという考えがあり、 それは間違いでは無いでだろう。 しかし… 型が無いためにメソッド名を冗長にしてしまう 以下のコードは税率を取得するだけの単純なものだ。 TAX::getRate()と実行することで税率を取得出来る。 これなら、主語=TAX、述語=getRateと読み取れるので何をしているのか一目瞭然である。 class Tax { private static $tax_rate = 0.8; public static function getRate() { return self::$tax_rate; } } しかし、これは戻ってくる値の型を予約出来る静的片付け言語であればの

    最低限書いておきたいPHPのDocコメント - Qiita
    kanakogi
    kanakogi 2015/02/08
    PHP Docコメント
  • 短気なプログラマのためのPHPUnitクックブック

    「今までテストを書いたことがないから、そろそろテストを書かなくては・・・」という、PHPUnitもテストのこともまだ知らないプログラマにとって、一番最初に欲しいのは「何から始めたらよいのか」を知るためのガイドです。 書は、PHPUnitを使ったテストの書き方を、短時間で知るための小冊子です。これだけ読めば、PHPUnitでテストを書いていけるようになります。 書が特徴的なのは、ユニットテストの形式的な書き方だけを単純に説明したではないということです。書では、PHPUnitによるテストを、オブジェクト指向の原則に沿った、良いコードへリファクタリングしていくための道具、と位置づけています。その流れに沿って、必要最低限の基礎知識や、実際にありそうなサンプルコードで使い方が説明されています。モック(テストダブル)を使ったテスト、フィクスチャを使ったテスト、APIのテストといった対象ごとのP

    短気なプログラマのためのPHPUnitクックブック
    kanakogi
    kanakogi 2015/01/14
  • PHP5で、マルチアクセスな似非クローラ作った | zaru blog

    使い捨てレベルで、クローラを作らなくちゃならなくなったので、とりあえず file_get_contents でもループして放置するか…とも思ったけれど、せっかくなので同時に4接続ほどするようにしてみた。PHP5には curl_multi_exec という便利なものがあるので、これを使う。 ソース クローラクラス <?php class multiCrawler{ var $uriArray = array(); var $output = array(); var $timeout = 0; var $ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12'; //最大同時接続数 var $accessMaxNum = 4; var $start = 0; /

    kanakogi
    kanakogi 2014/10/16
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
    kanakogi
    kanakogi 2014/08/14
  • PHPを数行書きながらフレームワークを理解する

    フレームワークと強そうですが、ものすごく単純化して考えると、以下の1行に集約されます。 View(Action($_GET['url'])); これは何をしているかというと? どこにアクセスされているかを取得する。 ($_GET[‘url’]) 必要な処理を施す。 (Action) 処理の結果を表示する。 (View) どこにアクセスされているかを取得する 思い切って、.htaccessに次のように書いてしまいます。 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] これは「どんなURLを叩いても全てindex.phpを呼ぶ」というものです。(そこに既にファイルが存在しなければ

    PHPを数行書きながらフレームワークを理解する
    kanakogi
    kanakogi 2014/03/31
  • websec-room.com - websec room リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    kanakogi
    kanakogi 2014/03/27
  • phpとmysqlを使った表の作成mysqlで作成したデータをphpで取得し、画像右側のような一覧表にしたいと考えています。Mysqlから... - Yahoo!知恵袋

    phpmysqlを使った表の作成 mysqlで作成したデータをphpで取得し、画像右側のような 一覧表にしたいと考えています。 Mysqlから値を取得し、<table>タグで画像左側のような表を 作成することはできたのですが、 phpmysqlを使った表の作成 mysqlで作成したデータをphpで取得し、画像右側のような 一覧表にしたいと考えています。 Mysqlから値を取得し、<table>タグで画像左側のような表を 作成することはできたのですが、 各項目で重複する値を一つに結合することができません。 それぞれ重複する値の数をカウントし、その値をrowspanにあてはめることができれば うまくいくのではないかと思うのですが、phpでの条件のつけ方や参考になるサイトがあれば 教えて下さい。 ご回答ありがとうございます。 例に出した表だと項目は少ないのですが、実際は全国のデータがあり、商

    phpとmysqlを使った表の作成mysqlで作成したデータをphpで取得し、画像右側のような一覧表にしたいと考えています。Mysqlから... - Yahoo!知恵袋
    kanakogi
    kanakogi 2013/09/05
  • PHPからChromeにログ出力「Chrome Logger」

    こんにちは、中川です。 PHPでの開発中のちょっとしたデバッグに、echo や var_dumpで画面に値を出力して確認することがありますよね。 このデバッグ方法は簡単でいいのですが、出力した配列の値などはパッと見で確認しやすいとは言えませんし、画面の表示内容が崩れたりします。 画面に出力しない方法としては、 error_log関数を使ってapacheログやファイルに出力する方法もありますが、 この場合は、サーバ側にログインしてtailなどでファイル内容を確認する必要がでてきます。 そんなちょっとした問題を解決してくれるツール 「Chrome Logger」をご紹介したいと思います。 Chrome Loggerを使えば、JavaScriptのconsole.logのように、 表示画面には影響を与えないでブラウザのデベロッパコンソールにPHPから値を出力できます。 ■Chrome Logge

    PHPからChromeにログ出力「Chrome Logger」
    kanakogi
    kanakogi 2013/08/13
  • PHP meets NodeJS

    PHPにPUSH通知(リアルタイム処理)機能を導入するために、NodeJSと連携するための簡単な概要を説明してみました。特にどこかで発表した資料とかでは無いっす。 資料のライセンスはMITです。

    PHP meets NodeJS