タグ

関連タグで絞り込む (259)

タグの絞り込みを解除

PHPに関するmsakamoto-sfのブックマーク (355)

  • PHPを5.6から7.2にする際に苦労した点やハマった点、嬉しかった点 - WebエンジニアのLoL日記

    はじめに php7ccで検出されない問題とは ハマった点1: count関数の挙動変更 ハマった点2: $array[] で値を追加しようとして壊れる 苦労した点: mysql関数の置き換え 苦労した点2: PHPUnitのバージョンも上げないといけない 逆に嬉しかった点: 型アノテーションの強化 まとめ はじめに この記事は PHPアドベントカレンダー 6日目の記事です。 皆さん、PHP 5.6のセキュリティサポートは2018年12月いっぱいで終了です。つまり、このアドベントカレンダーのカウントダウンがPHP 5.6終了へのカウントダウンなわけです。 PHP5.6からPHP7系に移行しようとしている皆さんはきっとphp7ccを使ってコードのチェックをしているかと思いますが、php7ccでは検出されず、実際に動かしてみないと気づかない問題もあります。 今回はそういったハマった点や苦労した点

    PHPを5.6から7.2にする際に苦労した点やハマった点、嬉しかった点 - WebエンジニアのLoL日記
  • 徳丸浩の日記: SSRF(Server Side Request Forgery)徹底入門

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

    徳丸浩の日記: SSRF(Server Side Request Forgery)徹底入門
  • PHPEncode書いた - moriyoshiの日記

    The JUI 2009 Returnsに参加してきました。発表者の皆様お疲れさまでした!!!! JavaScript は柔軟な文法を持っていながら、ドメイン特化型言語として生まれた宿命か、何度もその寿命を宣告されてきた言語だと思いますが、今回の発表はそんなことを微塵も感じさせない、JavaScript の未来を予見させるような talk がいっぱいでとても触発されました!特に、JavaScript の未来型ユーザーインターフェイスについての知見を得ようとして参加したのですが、この期待を完全に、根から、裏切る*12 つの presentation が印象的でありました。 Yoshinori Takesako - Polyglot Yosuke Hasegawa - jjencode まあそんなわけで発表中に適当に手を動かして作りました。 PHPEncode です。 何をするためのもの?

    PHPEncode書いた - moriyoshiの日記
  • PHPで記号プログラミング - Qiita

    この記事はm1z0r3 Advent Calendar 2018の2日目です。 様々なプログラミング言語において、記号だけでプログラミングを行う「記号プログラミング」という手法が存在します。 Javascriptの記号プログラミングは盛んに行われており、一見余興のように思えるこの記号プログラミングもコードの難読化など色々と使い道があるようです。 CTFでは、この記号プログラミングがブラックリストのバイパス手段として必要となることがまれにあり、Web問で使われることの多いPHPも例外ではありません。 そこで今回は、PHPで記号だけを使ってどこまでプログラミングできるのかをまとめてみます。 まずは記号だけでできることをまとめます。 できること 1. 文字列の生成 PHPでは文字同士の論理演算が可能です。利用できる論理演算は^(XOR), |(OR), &(AND), ~(NOT)です

    PHPで記号プログラミング - Qiita
  • 正規表現でPHPを脆弱にする (1) 「^ と $」 - Qiita

    みなさん正規表現は好きですか? 私は好きです。簡単に脆弱性を作り込めて、とても便利ですからね。 この記事ではPCRE関数(preg_match(), preg_replace()など)を利用して、みなさまにPHP正規表現のバッドノウハウを教示いたします。 先に結論を書きます 単独の文字列のマッチに $ を用いるのは予期しないパターンになるのでやめましょう。^は特に危険ではありませんが、^と$の組み合せではなく\Aと\zの組み合せを覚えましょう。ただし、m修飾子で複数行(マルチラインモード)で、行頭と行末にマッチさせたい場合を除きます。 文字列のマッチに ^ と $ のペアを利用する そうですね、例としてQiitaのようなユーザー登録サイトの表示名 @tadsan のような文字列を登録する前の検査をするとします。 要件としては、使用可能な文字は abcdefghijklmnopqrstuvw

    正規表現でPHPを脆弱にする (1) 「^ と $」 - Qiita
  • gRPC

    Why gRPC?gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend

    gRPC
  • LDAPインジェクションをしたかった話 - まったり技術ブログ

    はじめに 検証環境 ホスト コンテナ 構築 OpenLDAP LDAPクライアントアプリケーション 1. アプリケーションの用意 2. コンテナの準備 3. コンテナの実行 動作確認 OpenLDAPの動作確認 予想外の事態発生 脆弱性の検証 正常系の動作確認 脆弱性の確認 ダメな対策 対策 ldap_escape関数 まとめ 参考 更新履歴 はじめに 今更ながらLDAPインジェクションがどのようなものなのかの検証をやってみました。 LDAPインジェクションは脆弱性としてそこそこ有名であり、名前だけは目にすることがあるが、イマイチ実際に検証を行う気になれない脆弱性でもあると思う。特にLDAPの環境構築は手間になりそうだし。 このままだとLDAPインジェクションを体験しないまま死んでしまってもおかしくないので、DockerでさくっとLDAPインジェクションの検証環境を構築し体験してみるとする

    LDAPインジェクションをしたかった話 - まったり技術ブログ
  • Dockerで作るPHP開発環境(入門編)

  • GAE/SE PHP 7.2環境は実用性が高そうだという話 - hnwの日記

    筆者の周囲だけかもしれませんが、さいきんGoogle App Engine Standard Environment(以下GAE/SE)が再注目されつつあるように思います。今回筆者もgVisorベースのGAE/SE PHP 7.2環境に触ってみたので、その内容を紹介します。 GAE/SEとは GAE/SEは元祖PaaSとも言えるような、Googleが提供するフルマネージド環境です。以前からJavaPythonGoPHPの4言語の環境が提供されていましたが、Go以外の言語のバージョンアップは長いこと提供されておらず、Google気度に疑問を持っていた人も多かったように思います(私もその一人でした)。 ところが最近になってNode.js 8、Java 8、Python 3.7、PHP 7.2と立て続けに新バージョンを提供してきており、Googleが水面下でGAE/SEに開発リソースを

    GAE/SE PHP 7.2環境は実用性が高そうだという話 - hnwの日記
  • PHPプログラミングも快適に! VS Codeの二大拡張機能

    PHPプログラミングも快適に! VS Codeの二大拡張機能:Visual Studio Code+PHPの可能性を探る(1/3 ページ) VS CodeとPHPでWebアプリ開発はどこまで簡単になるのかを探る新連載。今回はVS Codeを利用したPHPによるアプリ開発に必須の拡張機能を2つ紹介する。 連載「Visual Studio Code+PHPの可能性を探る」 連載では、Visual Studio Code(以下、VS Code)を使ってPHPプログラミングする際の基事項を紹介していく。ただし、PHPの構文や文法については取り上げない予定だ。これらについては、@IT内の連載「Web業界で働くためのPHP入門」やPHP公式サイトの「PHP マニュアル」などを参考にしてほしい。また、VS CodeのGUI構成や、基的な使い方については「Visual Studio Codeの使い方

    PHPプログラミングも快適に! VS Codeの二大拡張機能
  • PHPコードの解析をPhanからPHPStanに移行しようか検討しています - コネヒト開発者ブログ

    こんにちは、サーバーサイドのお仕事してます金城(@o0h_)です。 7月は「波よ聞いてくれ」と「ベアゲルター」が共に出るという、嬉しい事態でした。沙村作品は魅力的なキャラクターがいつも多いですが、その中でも女性キャラの強さ・芯の太さに圧倒されます。 [まとめ買い] ベアゲルター さて、今回はタイトルの通り「(静的)解析どうするの」という問題について少し考えている事をまとめてみます。 「Phan」か「PHPStan」か、どっちが良いでしょうか? 現在コネヒトではPhanを導入してコードをチェックしています。 「道具で安心感を得られる」のは最高なので、Phanもまた最高なのです。しかしながら、実際に日常的に回していく中で、いくつか気になっていることもあります。 実行に時間がかかる (プロダクトでは利用しない)php-astエクステンションが必要になる エラーが発生した時の原因箇所の特定が大変

    PHPコードの解析をPhanからPHPStanに移行しようか検討しています - コネヒト開発者ブログ
    msakamoto-sf
    msakamoto-sf 2018/08/29
    静的解析
  • PHPDocker.io - Generator

    A PHP development environment generator built with Docker containers.

  • nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する

    DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS" PHP-FPM って何? Answer PHP: FastCGI Process Manager (FPM) - Manual FPM ( FastCGI Process Manager ) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。 そもそも CGI って何? Common Gateway Interface (CGI) - Wikipedia Common Gateway Interface(コモン・ゲートウェイ・インタフェース、CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。 現存する多くのウェブ

    nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する
  • Drupalの脆弱性調査をするための最高の環境を整えた - knqyf263's blog

    Dockerで動かしたDrupalをPhpStormからリモートデバッグ出来るようにした話です。 Drupalって書いてますがPHPのソフトウェア全般に使える話です。 勢いで最高とか言いましたが、さっきドキュメントを読んでいたら以下の方法よりもっと簡単にやれる方法がありそうなので、また分かったら後日書きます。 概要 先日、Drupalgeddon 2(CVE-2018-7600)の脆弱性について調査したのですが、全部Dockerでvar_dumpで頑張ってたら非常に大変でした。 PhpStormとかIDEでデバッガ使いたいなーと思って、実際にやったら便利になった、という記事です。以前Tomcatの時に同じことやっているのでPHP版ですね。 背景 あんまり環境構築には関係ないので興味ない人はスルーで良いです。 脆弱性調査をするエンジニアの特徴として、複数のバージョンを試したりする必要があるた

    Drupalの脆弱性調査をするための最高の環境を整えた - knqyf263's blog
  • PHPStanで始めるPHPのための静的解析 #phperkaigi

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

    PHPStanで始めるPHPのための静的解析 #phperkaigi
  • 個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita

    はじめに 私は、これまでいくつかのPJでPHPの開発をしたり、自分でも勉強がてらアプリを作ったりしてきました。 その中で、同じPJに参画していた方から教えていただいた技術や自分でこれは心得ておきたいと思った事をまとめてみました。 また、最初にこの記事を書いたのは2018年3月ですが、半年後、1年後、さらにその先はガラリと状況が変わっている可能性もあります。 その場合、できるだけ最新の情報に更新し続けたいです。 1. バージョン もし、これから新規でPHPで何かを作り始めるなら間違いなく7系を使った方がいいです。 5系に比べて言語としての処理速度も上がっていますし、新機能も増えています。 昔からある古いプロダクトの保守などで、どうしても5系を使い続けなければいけないPJもあると思いますが、 5系で一番新しい5.6ですら2018年内にセキュリティサポートが切れてしまうので、多少大変でも7系への

    個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita
  • return true to win

    return true to win <?php function foo($x) { return $x; } foo( ) Submit Score: 0 Absolute best score: 2 Level 1 Level 2 Level 3 Level 4 Level 5 Level 6 Level 7 Level 8 Level 9 Level 10 Level 11 Level 12 Level 13 Level 14 Level 15 Level 16

  • 2018年のパスワードハッシュ - Qiita

    数年前であれば仕方なかったところですが、2018年の今となっては、パスワードハッシュの手動計算はもはや"悪"です。 まずログイン認証と称してmd5とかsha1とか書いてあるソースはゴミなので投げ捨てましょう。 hashやcryptは上記に比べればずっとマシですが、使い方によっては簡単に脆弱になりえます。 あと『パスワードを暗号化する』って表現してるところも見なくていいです。 PHPには、ハッシュに関わる諸々の落とし穴を一発で解消してくれるpassword_hashという超絶便利関数があるので、これを使います。 というか、これ以外を使ってはいけません。 以下はフレームワークを使わずに実装する際の例示です。 フレームワークを使っている場合は当然その流儀に従っておきましょう。 ハッシュの実装 データベース ユーザ情報を保存するテーブルを作成します。 パスワードカラムの文字数は、システム上のパスワ

    2018年のパスワードハッシュ - Qiita
  • Asynchronous Multitasking PHP

    Build fast, concurrent applications with PHP Benefit from concurrency by replacing your blocking I/O with non-blocking I/O, or designing your system with non-blocking I/O from the ground up. We shipped fibers in PHP 8.1 to extend its capabilities for concurrent applications. The PHP standard library has already provided everything else we needed for years now, but it only ships the low-level build

    Asynchronous Multitasking PHP
  • 負荷試験のためのノウハウと Webフレームワークの負荷試験 (Python,Node,Go,PHP) - Qiita

    この記事はRetty Advent Calendar 2017 における 22日目の記事です。 昨日は @saku さんの swiftで丸画像をパフォーマンス高く表示する方法 でした。 はじめに 趣味のBot開発から気づけばWebフレームワークの負荷試験を行なっていました。 Software Engineerの@tkngueです。普段業務としては、Data Engineer/Web Service開発/データ分析やってます 「速さは正義」 とは皆の共通の認識で、言うまでもないことだと思うのですが 記事では、速さってなんだろうって考えてみます。 TL;DR 負荷試験における 速さは面で捉えよう: 品質を50%'ile - 90%'ile - 99%'ile ... で定義する 品質を評価する手段にも気をつかおう: Coordinated Omission は大きな測定誤差を生みます Go

    負荷試験のためのノウハウと Webフレームワークの負荷試験 (Python,Node,Go,PHP) - Qiita