タグ

phpに関するs99e209のブックマーク (124)

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

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

    正規表現でPHPを脆弱にする (1) 「^ と $」 - Qiita
  • PHPで簡単に永続プリロードできるようになる - Qiita

    PHPはHTTPリクエストが来るたびに全てのPHPコードをバイトコードに変換し、そして実行しています。 毎回そんなことやってるのにあれだけ速度が出るのは驚異的ですが、それでもやはりコンパイルにかかる時間だけどうしても遅くなってしまいます。 そこで、もっと高速化するためにOPcacheのような仕組みが存在します。 これはバイトコードをメモリ上に保持し、リクエストを超えて使い回すことでコンパイルの手間を省略し、高速化を実現するというものです。 効果はというと、単純なものでもターンアラウンドタイムが2/3、大きなフレームワークでは半分以下と、お手軽かつ強力な効果があります。 とはいえOPcacheには、元のPHPファイルに変更があるかどうかを監視したりといった僅かなコストが残っています。 特にバイトコードはファイル単位でしかキャッシュできないらしく、extendsなどで別のファイルを参照している

    PHPで簡単に永続プリロードできるようになる - Qiita
  • 問題:間違ったCSRF対策~初級編~

    脆弱性診断の学習のお供に、比較的簡単なCSRF対策バグの問題を提供します。この記事では問題のみを出し、想定解答は後日公開することにします。ネタバレとなるブックマークコメントやツイートなどは控えていただけると幸いです(「思いのほか簡単だった」など感想は可)。ブログ記事等に解説記事を書くことは歓迎いたします。 以下はテスト用に「ログインしたことにする」スクリプト(mypage.php)。ログイン状態で呼び出すこともでき、いずれの場合でもログインユーザのメールアドレスを表示します。 <?php // mypage.php : ログインしたことにする確認用のスクリプト session_start(); if (empty($_SESSION['id'])) { // ログインしたことにしてメールアドレスも初期化 $_SESSION['id'] = 'alice'; $_SESSION['mail'

    問題:間違ったCSRF対策~初級編~
  • 2018年9月の、これだけは押さえておきたいWeb関連の動き | Stocker.jp / diary

    Webニュース 2018年9月の、これだけは押さえておきたいWeb関連の動き Monday, October 1st, 2018 「Web系の最新情報を知りたいけど、日々業務が忙しくて追いかけられない」という方のために、1ヶ月のWeb系ニュースの中で「これだけは押さえておきたい」というものを1つの記事にまとめています。 デザイン 追従ヘッダー実装時に使える動作・デザインパターン例 | NxWorld 追従ヘッダーも一般的になってきましたが、こうやって見るといろいろなパターンがありますね。 Adobe macOS Mojave(10.14)対応状況 | Adobe Community 現在、Creative Cloudの最新版とMojave 10.14の互換性があることを確認しております。 と書いてありますが、実際はPhotoshop CCの動作に問題が生じているようです。 また、外観をダー

    2018年9月の、これだけは押さえておきたいWeb関連の動き | Stocker.jp / diary
  • まだある! PHPプログラミングを支援する拡張機能

    連載「Visual Studio Code+PHPの可能性を探る」 前回は、Visual Studio Code(以下、VS Code)でPHPコードの記述/デバッグ実行を行う上で必須ともいえる2つの拡張機能を紹介した。今回は、PHPプログラミングで利用できる以下のような拡張機能を紹介していこう。 以下では、前回に作成したコードを例に、これらの拡張機能を見ていこう。なお、連載ではWindows 10 Proの環境上に、XAMPPを用いて構築したPHP開発環境を使用している(PHPのバージョンは7.2.9。XAMPPのインストールは完了しているものとする)。他のOSや環境、PHPのバージョンでは、連載の記述とは異なる部分があるかもしれないことには注意されたい(パスの記述など)。 phpcs拡張機能phpcbf拡張機能 phpcs拡張機能phpcbf拡張機能は、PHP_CodeSnif

    まだある! PHPプログラミングを支援する拡張機能
    s99e209
    s99e209 2018/09/19
    拡張機能が次々と整備されてきてる。ユーザー数が多い無償エディタならではの利点ですな。
  • PHPにおけるvoidとは何か - Qiita

    PHPの文脈ではvoidはいくつかの異なる意味で利用されます。 そもそもvoidってなんだ void(ボイド)は、プログラミング言語において、「何もない」といった意味の型などに使われる名前である。プリミティブとしてキーワードないし予約語であることも多い。 (void (コンピュータ) - Wikipedia1より引用) C言語では「引数を受け取らず、引数を返さない」関数のプロトタイプを void f(void); のように記述できますね。 PHPマニュアルにおけるvoid PHP: ドキュメントにおける疑似的な型および変数 - Manualに記載があります。 返り値の型が void である場合は、 返り値に意味がないことを表します。パラメータ一覧で void が使用されている場合は、 その関数がパラメータを受け付けないことを表します。 具体的には以下の通りです。 header (PHP

    PHPにおけるvoidとは何か - Qiita
    s99e209
    s99e209 2018/09/17
  • 【PHP7.4】ついにPHPにプロパティ型指定がやってくる - Qiita

    Typed Properties 2.0というRFCが投票フェーズに入ったのですが、2018/09/13時点で賛成48反対0となっていて、ほぼ決まりの状態です。 Typed Properties 2.0 どういうRFCなのかというと、これです。 class User { public int $id; public string $name; public function __construct(int $id, string $name) { $this->id = $id; $this->name = $name; } } class Example { // 対象型はvoidとcallable以外全て public int $scalarType; protected ClassName $classType; private ?ClassName $nullableClassTy

    【PHP7.4】ついにPHPにプロパティ型指定がやってくる - Qiita
  • YYPHP#51「みんなが好きなフレームワーク、どのくらいまじめにテストやってる?、PHPを使う上でこれは知っておくべきこと、1番詳しいPHPの技術書はどれですか?、Dockerのベストプラクティスについて聞きたい、アプリケーションのGitリポジトリとインフラのGitリポジトリをそろそろ一緒にしていいか?、PHPUnitのコードバレッジと実行速度の話、PHPとオブジェクト指向を知り尽くした人がこれから目指すさらなる高み」 - Qiita

    YYPHP#51「みんなが好きなフレームワーク、どのくらいまじめにテストやってる?、PHPを使う上でこれは知っておくべきこと、1番詳しいPHP技術書はどれですか?、Dockerのベストプラクティスについて聞きたい、アプリケーションのGitリポジトリとインフラのGitリポジトリをそろそろ一緒にしていいか?、PHPUnitのコードバレッジと実行速度の話、PHPとオブジェクト指向を知り尽くした人がこれから目指すさらなる高み」PHPRailsLaravelDockerYYPHP これは2018年09月07日に開催したPHPerイベントYYPHP#51のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開

    YYPHP#51「みんなが好きなフレームワーク、どのくらいまじめにテストやってる?、PHPを使う上でこれは知っておくべきこと、1番詳しいPHPの技術書はどれですか?、Dockerのベストプラクティスについて聞きたい、アプリケーションのGitリポジトリとインフラのGitリポジトリをそろそろ一緒にしていいか?、PHPUnitのコードバレッジと実行速度の話、PHPとオブジェクト指向を知り尽くした人がこれから目指すさらなる高み」 - Qiita
    s99e209
    s99e209 2018/09/12
    YYPHP気になる
  • 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の二大拡張機能
    s99e209
    s99e209 2018/09/11
    Xdebugをサポートしていたり、PHP IntelliSenseを入れておけば入力補完機能も追加されるし、無料エディタのレベルを超えてる。
  • xhprofでパフォーマンスチューニング入門 - Qiita

    記事はマイネット Advent Calender7日目の記事です。 今回は社会人になってから(主にお腹周りの)成長が目覚ましい@w_cotaがお送りします。 はじめに 弊社ではスマートフォンゲームの運営を行っています。直近では他のゲーム会社からのタイトルを引き取って運用しているプロジェクトも増えてきております。弊社で開発したタイトルも含め、買収・協業のタイトルの中にはリリースから2年、3年と経過している長寿タイトルも多く見受けられます。 さて、長期間運営を重ねていきますと避けられない問題の一つが技術的負債の積み重ねかと思います。いかに優秀なエンジニアがいようと、いかに素晴らしい開発フローを採用していようとどうしても日々様々なタスクに追われる日常の業務の中では以下のようなシーンが発生し得るかと思います。 イベントリリースまでもう時間無いし、ちょっと実装ダサいけどこのままリリースして次回直そ

    xhprofでパフォーマンスチューニング入門 - Qiita
  • WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside

    2024年4月26日追記 WEB+DB PRESS総集編[Vol.1~136]が発売されたので、今後はぜひこちらをお買い求めください gihyo.jp pixiv運営技術基盤チームのうさみけんた(@tadsan)です。 2018年4月26日に技術評論社さまからWEB+DB PRESS総集編 [Vol.1~102]が発売されます(一部書店には既に並んでいるようです)。これは2000年12月に発売されたWEB+DB PRESSの創刊号から102回までの全バックナンバーのPDFを収録した、超大ボリュームの総集編(WEBからもダウンロード可能)です。 17年に及ぶWEB+DB PRESSの歴史の中で、ピクシブ株式会社も2014年から2017年までの間、連載企画『PHP大規模開発入門』を執筆・掲載させていただきました。 連載記事一覧 連載各回の内容は以下の通りです。 Vol.80 「モダンな開

    WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside
  • クロージャとは - Qiita

    ※クロージャと変数のスコープ(追記)を追記しました。 ※コメント欄で環境という用語について議論がありましたが、そもそも環境は専門用語として存在します。詳しくは環境を持つというイメージに追記しました。 使い古された話題ではありますけど、わかりやすく説明できそうな気がしたので書いてみたいと思います。 先に方針だけ伝えておくと、クラスとモジュールと関数は、変数のスコープを切ることができるという共通の性質を持っている、という切り口からクロージャについて説明していきたいと思います。 これだけ読んで何となく先が予想できてしまった人は読まなくても大丈夫かと思います。 それでも読んでくださるという方は、助言なり意見なりをくださるととても嬉しいです。 実行環境 言語はJavaScript(ES2015 or later)を使いますけど、別に知らなくてもなんとかなるんじゃないでしょうか。 何か他の言語をやって

    クロージャとは - Qiita
  • 個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita

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

    個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita
  • [PHP]ComposerのCLIで利用できるコマンドの説明

    こんにちは、@9ensanです。 PHPの依存管理ツールの「Composer」を使おうと思うとコマンドを覚えておいた方がいいと思うのでちょっと調べてみました。 以下解説になります。 全てのコマンドに有効なオプション –verbose(-v):詳細メッセージを表示させる。 –help(-h):ヘルプを表示する。 –quiet(-q):メッセージを表示しない。 –no-interaction(-n):対話型のメッセージを表示しない。 –working-dir(-d):作業フォルダを指定する –profile:メモリ使用量と実行時間を表示する。 –ansi:ANSIカラーでメッセージを出力する。 –no-ansi:ANSIカラーを使用せずにメッセージを出力する。 –version(-V):バージョンを表示する init composer.jsonを作成するコマンド、手で書くよりは少し簡単に作成で

    [PHP]ComposerのCLIで利用できるコマンドの説明
  • PHPのカレンダー | Advent Calendar 2017 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    PHPのカレンダー | Advent Calendar 2017 - Qiita
  • PHPにおける例外クラスの設計考察

    この記事はPHP Advent Calendar 2017の2日目です。 ここ最近、業のほうが死ぬほど忙しく、すっかりブログを書いていなかった@Hirakuです。 だいぶ前のことですが、今年のPHPカンファレンス福岡で例外の話をしてきました。 この時の発表では例外に関する概要が主だったので、例外クラスそのものの設計について補足を書いてみることにします。 例外のある世界観 PHP7ではいくつかのエラーが例外と同じ挙動を示すようになり、エラーではなく例外機構を使う言語に様変わりしました。 例外というのは、かなり侵略性の高い概念であり、例外のある世界では以下の前提に立つことが暗黙のうちに強要されます。 どこでも例外が発生する可能性がある 例外によって中断されても、ソフトウェアが不適切な状態にならないように保証するのは各プログラマの責任(例外安全) たとえば、以下の関数で例外が発生する可能性があ

    PHPにおける例外クラスの設計考察
  • PHP: PHP 7.2.0 Release Announcement

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

    s99e209
    s99e209 2017/12/01
    要チェック
  • PHP - The Wrong Way

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

    s99e209
    s99e209 2017/11/24
    恐ろしいスパゲッティコードが存在することは確かだが、プログラミングの大部分は、他人のコードを扱い仕事するのは普通のこと。
  • PHP業界の重鎮 廣川類氏のコラム第二回「次のPHPはどうなる? バージョン7.2でここが変わる」 - KUSANAGI Tech Column

    秋が深まる今日この頃、PHP 7.2のリリースが近づきつつあります。このPHP 7.2の変更点について、一部紹介します。まず、「クラス型宣言におけるobjectキーワードの導入」、これにより、単にオブジェクトが指定されたかどうかを確認したい場合にも型宣言が使用できるようになりました。また、「レガシー機能の廃止」があり、PHP 7.1で廃止予定とされていた暗号に関するエクステンションmcryptが標準アーカイブから削除され。そして、新たに「高度な暗号機能の標準サポート」がなされました。 こんにちは、すっかり秋も深まり、PHP 7.2のリリースもいよいよ近づいてきました。今回は前回に続き、11月にリリースされる予定のPHP 7.2に関する情報を紹介します。 PHPのバージョンとリリース時期 PHPでは、5年でメジャーバージョンアップが行われています。具体的には、PHP 4.0は2000年、PH

    PHP業界の重鎮 廣川類氏のコラム第二回「次のPHPはどうなる? バージョン7.2でここが変わる」 - KUSANAGI Tech Column
    s99e209
    s99e209 2017/10/20
    PHP 7.2での変更点は、クラス型宣言におけるobjectキーワードが使用できるようになったり、レガシー機能廃止など。
  • PHPカンファレンス2017 講演資料まとめ - Qiita

    4年連続4回目のPHPカンファレンスに参加したのでまとめます! 足りない情報とかあるので必要なら追記していただけると助かります session01: PHPの今とこれから2017 スピーカー:廣川 類(日PHPユーザ会) 資料: togetter: その他資料:PHPカンファレンス2017@東京_メモ①PHPの今とこれから 過去の資料 PHPの今とこれから2016 PHPの今とこれから2015 PHPの今とこれから2014 PHPの今とこれから2013 session02: Apache Kafkaによるスケーラブルアプリケーション開発 スピーカー:Yuuki Takezawa 資料:https://speakerdeck.com/ytake/apache-kafkaniyorusukeraburu-apurikesiyonkai-fa session03: 型を意識したPHPアプリケー

    PHPカンファレンス2017 講演資料まとめ - Qiita