この記事はLaravel Advent Calendar 2020 - Qiita 最終日の記事です。 TL;DR DDD や "真の" クリーンアーキテクチャは, Web 業界における大抵の現場ではオーバースペックだし,導入しても全員がついてこれるとは限らない app/UseCases ディレクトリだけ切って,ドメインごとに単一責務なクラスを置くと使いやすいよ ActiveRecord 指向のフレームワークで Repository パターンを無理に導入すると死ぬので, UseCase で Eloquent Model の機能を使うことを恐れるな はじめにZenn では初投稿です。日本のLaravel コミュニティではもうお馴染みのようで実はあまり顔を出していない(?) @mpyw と申します。オンラインサロンの火付け役となった Synapse が最初の仕事でしたが,就職後すぐ会社が

2022-07-19 これらの問題を解決する Random Extension 5.x 並びに Random Extension Improvement RFC が可決され、 master に merge されました。PHP 8.2 より利用可能になります。 https://wiki.php.net/rfc/rng_extension https://wiki.php.net/rfc/random_extension_improvement https://github.com/php/php-src/commit/4d8dd8d258ff365b146bcadcb277ede8992706d02022-06-18 これらの問題を解決するため、PHP 8.2 に対して Random Extension 5.x の RFC が作成され、投票が始まっています 2021-01-15PHP

Getting Started Introduction Asimple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces EnumerationsErrors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

BASE株式会社取締役 EVP of Development / PAY株式会社取締役 / BASEBANK株式会社マネージャのえふしんです。 新型コロナによる非常事態宣言下で起きたことについては、大変勉強をさせていただきました。 非常事態宣言下の巣ごもり消費、リアル店舗等でご活躍されている事業者様のEC利用が急増する中で、BASEにおいても例外ではなく、サービスに訪れるトラフィック急増、4月から5月の頭にかけては、サービスの安定性にも影響が出てしまうという状況が発生していました。 その中で起きていた一つの事象を解決した件が以下のCTOによる記事です。 devblog.thebase.in この記事はCTOやSREチームやWebアプリケーションのエンジニアの活躍で、負荷急増の問題解決をした一つの事例となります。 この対策を通じて、改めて認識したことがあります。 それは、 BASEに訪れる
結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基本中の基本である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日本語訳です。PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

はじめに サイトにクレジットカード決済を導入する必要があったので、クレジットカード決済代行サービスの「Stripe」を試してみました。Stripe https://stripe.com/jp まずはStripeにアカウント登録して、テストモードのAPIキーを発行します。 公開用のAPIキーと、シークレットのAPIキーをサンプルで使います。 購入画面サンプル 購入画面では「購入する」ボタンを押して、Stripeのポップアップ画面を表示します。Stripeのポップアップ画面にクレジットカード情報を入力して支払いをします。 <!DOCTYPEhtml> <html lang="ja"> <head> <meta charset="utf-8"> <title>購入画面</title> <!-- 購入ボタンのCSS --> <style type="text/css"> .stripe-bu

現在開発中のPHP 8にJITコンパイラを組み込むべきかどうかを決定する投票が3月28日に締め切りを迎え、賛成が50票、反対が2票と圧倒的多数で可決されたことが、発表されました。 JITコンパイラはプログラムの実行時にコンパイルを行い、ネイティブコードを生成して実行するというもの。事前にコンパイル作業が不要なためプログラムを手軽に実行できるうえ、ネイティブコードによる高速な実行が期待できることが特徴です。 投票に参加したのはPHPの開発に貢献しているプログラマなど。同時にPHP 7.4へのJITコンパイラの実験的組み込みについても投票が行われましたが、こちらは賛成18、反対36の結果となり否決されました。PHPは2015年12月、PHP 7へと10年ぶりにバージョンアップした際、PHP 5と比較して2倍以上の大幅な性能向上を果たしています。 参考:「PHP 7」登場。10年ぶりのメジャー

宅ふぁいる便から平文パスワードが漏洩した件を受けて、あらためてパスワードの安全な保存方法が関心を集めています。現在のパスワード保存のベストプラクティスは、パスワード保存に特化したハッシュ関数(ソルトやストレッチングも用いる)であるbcryptやArgon2などを用いることです。PHPの場合は、PHP5.5以降で使用できるpassword_hash関数が非常に便利ですし、他の言語やアプリケーションフレームワークでも、それぞれ用意されているパスワード保護の機能を使うことはパスワード保護の第一選択肢となります。 なかでもbcryptは、PHPのpassword_hash関数のデフォルトアルゴリズムである他、他の言語でも安全なハッシュ保存機能として広く利用されていますが、パスワードが最大72文字で切り詰められるという実装上の特性があり、その点が気になる人もいるようです(この制限はDoS脆弱性回避が

一般社団法人BOSS-CON JAPAN(代表理事:吉政忠志、所在:東京都世田谷区、以下「BOSS-CON JAPAN」)は、BOSS-CON JAPAN内組織であるPHP技術者認定機構が国内Webセキュリティ第一人者である徳丸浩氏が代表を務めるEGセキュアソリューションズ株式会社の支援を受け、ウェブ・セキュリティ試験(通称:徳丸試験)を2019年12月より開始することを発表いたしました。なお、本試験問題はEGセキュアソリューションズ株式会社が作成いたします。 ■ウェブ・セキュリティ試験実施の背景 全世界で稼働しているWebサイトは5億サイトになりました。企業にとっても重要な位置づけになるため、サイバー攻撃の対象となるケースも増え、攻撃手法も複雑かつ巧妙になってきています。よってウェブ・セキュリティに対する対策は以前よりまして緊密且つ迅速に施さなければなりません。ユーザ、開発者に対してより

SSRF(Server Side Request Forgery)という脆弱性ないし攻撃手法が最近注目されています。以下は、ここ3ヶ月にSSRFについて言及された記事です。 EC2上のAWS CLIで使われている169.254について SSRF脆弱性を利用したGCE/GKEインスタンスへの攻撃例 SSRFを利用したメール送信ドメインの乗っ取り 「CODEBLUE 2018」参加レポート(岩間編) この「空前のSSRFブーム」に便乗して、SSRFという攻撃手法および脆弱性について説明します。 SSRF攻撃とは SSRF攻撃とは、攻撃者から直接到達できないサーバーに対する攻撃手法の一種です。下図にSSRF攻撃の様子を示します。 攻撃者からは、公開サーバー(203.0.113.2)にはアクセスできますが、内部のサーバー(192.168.0.5)はファイアウォールで隔離されているため外部から直接

TL;DRPHPで動くファミコンエミュレータを作ったphp-terminal-nes-emulator画面描画は点字を使って文字出力コントローラは標準入力からfread() 経緯 2016年の2月にPHPで動くゲームボーイのエミュレータ、php-terminal-gameboy-emulator に衝撃を受けて、その実装の解説を勉強会やカンファレンスでトークしたりSoftware Design誌に書いたりしました。(*1) カンファレンスでのトークでは時間の都合もあって全体のごく一部しか話が出来ないのですが、Software Design誌では誌面をたっぷり頂いてCPU、メモリアクセス、画面表示とphp-terminal-gameboy-emulator のほぼ全域を解説出来たので満足し、その熱は落ち着いていました。 そんな中、9月に開催されたbuilderscon tokyo 201

エグゼクティブサマリPHPの脆弱性CVE-2018-17082はXSSとして報告されているが、現実にはXSSとしての攻撃経路はない。一方、Apacheのmod_cacheによるキャッシュ機能を有効にしているサイトでは、キャッシュ汚染という攻撃を受ける可能性がある。 概要PHPの現在サポート中のすべてのバージョンについて、XSS脆弱性CVE-2018-17082が修正されました。以下は対応バージョンであり、これより前のすべてのバージョンが影響を受けます。ただし、Apacheとの接続にApache2handlerを用いている場合に限ります。PHP 5.6.38PHP 7.0.32PHP 7.1.22PHP 7.2.10PHP 5.5以前も対象であり、これらは脆弱性は修正されていません。 脆弱性を再現させてみる この脆弱性のPoCは、当問題のバグレポートにあります。PHP ::

PHPで顔認識したいPHPで顔認識するという若干ニッチな要望が某案件であったりします。 こんなのがあるのでこれをインストールしに行きます。OpenCVのインストール facedetectをインストールするにあたってOpenCVが必要になります。 yumでもあったりはするんですがバージョンが古くてfacedetectをインストールできません。 なので仕方なくソースからインストール・・・。 これの通りやれば行けなくはないんですが、groupinstallが邪魔・・・。 [root@localhost source]# wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.11/opencv-2.4.11.zip [root@localhost source]# unzipopencv-2.4

Githubで公開されている以下のライブラリを利用することでPHPでOpenCVが利用可能になる。 [mgdm/OpenCV-forPHP] https://github.com/mgdm/OpenCV-for-PHP インストール方法 ソースを取得 git clone git://github.com/mgdm/OpenCV-for-PHP.git 必要なパッケージを入れる yum installphp-developencvopencv-devel make gcc makeするphpize ./configure make install モジュールを読み込むようにするvim /etc/php.d/opencv.ini [opencv] extension = "opencv.so" 使い方OpenCV名前空間上にラップされたクラスが存在しているので、それを利用する。 画

BASE CTOの藤川です。 リブセンスさんが運営されている転職ドラフトという転職サイトで、全員のプロフィールを読んでいて薄々気がついていたことに改めて気がつかされたのですが、BASEの方でサーバサイドに使っているメインの技術はCakePHPというフレームワークでありPHPの技術なのですが、 新卒の就職先がRubyを使っていて、今、25〜27歳ぐらいになっている若手エンジニアにPHPの経験がない人が増えている! という大きな問題にぶちあたりました。我々は転職いただく方の前職については、いくつか期待している流れがあります。決済、EC視点ではEC-cubeなどでPHPを扱っていた会社からの転職組というのが重要な人材供給源だったりするのですが、それ以外に「モバイル、スマホアプリ、最強のUX」というスタートアップ的な視点においては、モダンなスタートアップのサービスに携わっている経験は魅力的です。(
teratailに以下のような投稿がありました。PHPでメールフォームを作成したので、脆弱性がないかアドバイスいただけないでしょうか。エンジニアでもなければ、PHPもろくに書けない雑魚ですが、「php メールフォーム 作り方」でググって表示されるサイトを見ると、「んんんんん???」と思うところがあります。 これらを参考にしたり、コピペする方は、記述されているコードの良し悪しは判断できないかと思います。 そのような方々が参考にできるメールフォームを作りたいという思いで、調べて作りました。 周りに書いたコードを確認してもらえる人もいないので、皆様からのアドバイスがほしいです((_ _ (´ω` )ペコ 【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうかより引用 どれどれ…と確認すると、トークンのチェックが入っているにも関わらずクロスサイト・リクエストフォージ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く