タグ

phpに関するsds-pageのブックマーク (29)

  • LaravelはどのようにCSRF対策をしているのか?

    誰しもLaravelbladeでformを書くにあたって、@csrfという魔法の呪文を書いたことがあるかと思います。 「これを書いておけばCSRF対策はOK」 ドキュメントにも要約するとそういう旨が書いてあります。 この記事では@csrfについてLaravelの実装を実際に見てみることで、CSRFとその対策への理解を深めたいと思います。 ちなみにこの記事はぺちこん2024で残念ながら採択に至らなかったCfPの供養です。[1] 利用するサンプルアプリ @csrf はなにをしているのか? そもそもですが、@csrfが何をしているのかを見てみます。 bladeに@csrfを埋め込んだ場所を、HTML変換後の状態から見てみます。 <input type="hidden" name="_token" value="G5FzKXaCYA4w8kdWbftEZMYoglQgD9yPIG9r2zzx"

    LaravelはどのようにCSRF対策をしているのか?
    sds-page
    sds-page 2024/10/19
    おまじないのように書いておくだけでやってくれるというのは便利ではある。ミドルウェアどうなってるのかはハマった時にしか見ないからね・・・
  • Laravel の認証・認可パッケージが多すぎてわけわからんので図にまとめた - Qiita

    元ネタ @localdisk さんの記事です。 こちらで概ね適切に説明されているものの,文章のみで図が無くて直感的に把握しづらいので,初心者にもすぐ飲み込ませられるように図に描き起こしてみました。 図 解説 illuminate/auth: 最小限の認証認可コアロジック コアコンポーネント群の laravel/framework に含まれているものです。 Socialite 以外のすべてのパッケージが,実質このコアに依存していることになります。 以下の記事でこのパッケージの詳細について説明しているので,ここでは端折って説明します。 伝統的 Cookie ベースのセッション認証 こちらでも解説している, 「Cookie に識別子を載せ,それに対応する情報はサーバ側のファイルに記録する」 という手法に近いものです。 実装は illuminate/session にあり, PHP ネイティブのセ

    Laravel の認証・認可パッケージが多すぎてわけわからんので図にまとめた - Qiita
  • PHP の乱数実装がグダグダな話

    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/4d8dd8d258ff365b146bcadcb277ede8992706d0 2022-06-18 これらの問題を解決するため、 PHP 8.2 に対して Random Extension 5.x の RFC が作成され、投票が始まっています 2021-01-15 PHP

    PHP の乱数実装がグダグダな話
    sds-page
    sds-page 2020/12/14
    グダグダ天使
  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案
  • 【PHP8.0】PHPでunion型が使えるようになる - Qiita

    Union Types 2.0というRFCが投票中です。 提案者はまたまたのNikita。 2019/10/25開始、2019/11/08終了で、受理には2/3+1の賛成が必要です。 2019/11/04時点で賛成55反対5であり、ほぼ導入確定です。 PHPのunion型って何かというと、TypeScriptのunion型とだいたい同じです。 int|string $aと書いたら$aはint型もしくはstring型ですよ、ということです。 ちなみに別途RFCをGitHubで管理しようという実験が進行中で、このRFCの詳細はGitHub上に存在します。 このRFCはまだNikitaの個人GitHub上にしかないのですが、決まりになったらPHP公式に移動になると思います。 まあGitHubのほうが管理とか更新とか楽ですからね。 ただGitHubはURLがすぐ404になるのだけはどうにかしてほ

    【PHP8.0】PHPでunion型が使えるようになる - Qiita
    sds-page
    sds-page 2019/11/06
    目を覚ませ僕らのPHPが何者かに侵略されてるぞ
  • PHPはもうダメだ、PHP万歳! | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) GutenbergとWordPressに関する騒動は、PHPの終焉につながる最新記事です。深呼吸をしてください、みなさん。トロールは無視し、Mark TwainとFidel CastroとPHPとの共通点を見ていきましょう。そして、もっと重要なのは、スタートアップやスモールビジネスにとって、PHPが今でも合理的な選択である理由です。 PHPはいつから廃れ始めたのか “PHPはもうダメだ”といったブログの投稿が、登場し始めたのは2011年のようです(これより古いものを見つけたら、お知らせください)。Mediumや、mushroomsのように突然出現したcoding bootcampsを探し回れば、その唯一の共通点は、みんながPHPを嫌っているか、あるいは単に無視しているかです。どうやら、法外な値段のコー

    PHPはもうダメだ、PHP万歳! | POSTD
    sds-page
    sds-page 2019/03/29
    ぺちぱーが生き生きしとる
  • PHPのハマりポイントのリンク集 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    PHPのハマりポイントのリンク集 - Qiita
    sds-page
    sds-page 2019/01/24
    Select文が通らない謎のエラーでちょっと書き換えたらエラー出なくなったのが謎。他の言語で遭遇したことはない謎のハマりポイント
  • 罵声を浴びて疲れた...入社3日目 - Qiita

    はじめまして、PHPプログラマーのアリスです。私はこう見えて日人ですが、母親はイタリア人です。さて、今回は入社3日目の初心者PHPプログラマー仕事でどんなことをしているか書きます。 1日目 1日目は、最初に自己紹介を行いました。 「山田アリスと申します。専門学校でプログラミングを学びました。バックエンドプログラマーとして配属されましたが、最初はわからないことが多いと思いますが、よろしくおねがいします。」 と言いました。歓迎ムードではなく、みんな無表情で手をぱちぱちしていました。 その後、「新人は入社後の手続きをしてください」と言われ、そのとおりにしました。その日の記憶は、それしかありません。 2日目 配属先で何をするかと思ったら、上司から「自分のPCの環境を完璧に設定しろ。後からバカみてぇにコロコロといらねーもん入れたら承知しねーから、今のうちに必要なものは入れておけ」と言われ、Ema

    罵声を浴びて疲れた...入社3日目 - Qiita
    sds-page
    sds-page 2018/11/14
    話をまとめるとマンハッタンコードのステマって事か
  • 選定した技術が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

    sds-page
    sds-page 2018/03/13
    長いものには巻かれろ
  • https://frasco.io/the-global-php-community-continues-to-toxify-itself-and-we-need-to-halt-it-for-the-sake-of-our-peers-4ec9599fc203

    https://frasco.io/the-global-php-community-continues-to-toxify-itself-and-we-need-to-halt-it-for-the-sake-of-our-peers-4ec9599fc203
    sds-page
    sds-page 2017/11/13
    日本だとブーメランは自分に帰ってくるものだから手斧かなと思った
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
    sds-page
    sds-page 2017/07/18
    素人はおとなしくフレームワーク使ってろって話
  • PHP って JavaScript に変換できるの?できるわけないだろ! babel-preset-php ってのが今日リリースされた?これまさか・・・。ファーーーーーーーーーーーwwwwwwwwwwww - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    PHP って JavaScript に変換できるの?できるわけないだろ! babel-preset-php ってのが今日リリースされた?これまさか・・・。ファーーーーーーーーーーーwwwwwwwwwwww - Qiita
    sds-page
    sds-page 2017/07/14
    ASP.netもソースからJavaScript生成したりしてるし・・・
  • PHPができても他言語の学習には役に立たない理由を考えてみた。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? PHPしかできない奴はいつまで経ってもPHPしかできない? PHPには下記のような都市伝説があります。 他言語から学んだ者がPHPを習得することは容易いが、PHPから学んだ者が他言語を習得することは難しい。PHPから始めた者は、一生PHPのみで過ごすか、一度PHPを忘れて、初心から他言語を学ぶしかない。 まぁ、言っているのは私一人ですけどね。引用っぽくしてますが、引用元はありません。都市伝説ですので。1 これはとあるRubyの開発者がPHPをdisったことから始まる第2回PHPなめんな選手権2のところで、404 Blog Not Fou

    PHPができても他言語の学習には役に立たない理由を考えてみた。 - Qiita
    sds-page
    sds-page 2017/05/10
    参照渡しの部分とかVBの事知らない人なのかと思ったら知ってて黙ってるのか。VBもVBでByvalにしてもオブジェクト型は強制的に参照渡しになるのがアレ
  • PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita

    最初に結論 in_arrayには第三引数trueを指定しろ。絶対にだ。 はじめに in_arrayについては、はじめにPHP: in_array - Manualをよく読んでおいてほしい。 この記事に書いたコード断片は、どうか読むだけではなく自分で手を動かして確認してほしい。 PHPで短いコードを動かすのはPsySHを利用すると、とても捗る。ローカルに動作環境がなければ、Ideone.comなどのオンラインサービスを利用しても差支ない。 static $fruits = ["apple", "orange", "banana"]; in_array("apple", $fruits); // => true in_array("mikan", $fruits); // => false これがin_arrayのふつうの使ひかただ。 Webアプリケーションでの実例 では、次のような例を見てみ

    PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita
    sds-page
    sds-page 2017/02/21
    入り口付近で一律intにして意図しない動作を防ぐ派かな
  • そいう叩き方をしていた人も居たけれど、一番は実行速度なんだよ。 クソ重..

    そいう叩き方をしていた人も居たけれど、一番は実行速度なんだよ。 クソ重いコードにサーバのリソースを占有されたら、誰だって迷惑だと思うだろ。 そこでFacebook社が開発したのが、HipHop Virtual Machine(HHVM) こいつは、事前にPHPを中間コードに変換してから実行するので、.NETJava並みに速く動く。 HHVMが公開されたのが2011年で、実用的に使われだしたのは2012年のアップデート以降かな。 2016年にはPHP7がリリースされて、これはHHVM並みの速さでPHPが動くようになった。 PHP自体の改良が進むことで、PHPも他言語並みの速さで動くってことになったのであまり叩かれなくなった。 Laravelみたいなフレームワークも世界的に使われだして、ソースコードの書き方も他言語と大差なくなってきたのもあるとは思う。

    そいう叩き方をしていた人も居たけれど、一番は実行速度なんだよ。 クソ重..
    sds-page
    sds-page 2017/01/13
    それはPHPが敬遠されてた理由でぺちぱーが叩かれてた理由じゃない
  • フリーエンジニアのIT案件ならレバテックフリーランス

    2016年11月3日(木・祝)に開催された「PHPカンファレンス2016(#phpcon2016)」内で、レバテックは来場者に好きなPHPフレームワークを選んでもらう「PHPフレームワーク対決」を実施しました! 結果はすでにTwitter(@levtech_inc)で発表しましたが、大きな反響いただいたのでこの記事では結果と併せて投票者の声をまとめました。各フレームワークの好きなところ・嫌いなところなどPHPerのリアルな声が寄せられていますので、今後のフレームワーク選びの参考にしてみてください! ◆調査概要 調査方法:アンケート調査 調査対象:2016年11月3日(木・祝)に開催された「PHPカンファレンス2016」の来場者295人 PHP案件を提案してもらう 第1位 CakePHP 72票 CakePHPの好きなところ ・一番簡単に導入できるところ。コーディングが割と簡潔。 ・日語の

    フリーエンジニアのIT案件ならレバテックフリーランス
    sds-page
    sds-page 2016/11/27
    Cakeはもう古いとか言われてCodeIgniter使い始めたのにCodeIgniterも古いとか言われたりもっと古そうなsymfonyが現役だったりでわけわからん
  • 安全なPHPアプリケーションの作り方2016

    2. 徳丸浩の自己紹介 • 経歴 – 1985年 京セラ株式会社入社 – 1995年 京セラコミュニケーションシステム株式会社(KCCS)に出向・転籍 – 2008年 KCCS退職、HASHコンサルティング株式会社設立 • 経験したこと – 京セラ入社当時はCAD、計算幾何学、数値シミュレーションなどを担当 – その後、企業向けパッケージソフトの企画・開発・事業化を担当 – 1999年から、携帯電話向けインフラ、プラットフォームの企画・開発を担当 Webアプリケーションのセキュリティ問題に直面、研究、社内展開、寄稿などを開始 – 2004年にKCCS社内ベンチャーとしてWebアプリケーションセキュリティ事業を立ち上げ • 現在 – HASHコンサルティング株式会社 代表 http://www.hash-c.co.jp/ – 独立行政法人情報処理推進機構 非常勤研究員 http://www.

    安全なPHPアプリケーションの作り方2016
    sds-page
    sds-page 2016/11/04
    (;´Д`)多すぎ
  • #逃げ恥 で星野源がPHPコードを書いているシーンに着目する人たち

    ぱそきいろ @takacpu55 逃げ恥の一話見たけど、ガッキーの可愛さよりも納期直前の仕様変更により徹夜でプログラム組むSEの方が印象に残った 2016-10-23 11:05:58

    #逃げ恥 で星野源がPHPコードを書いているシーンに着目する人たち
    sds-page
    sds-page 2016/10/27
    これだからぺちぱーは・・・(とりあえずphpをディスる風潮)
  • PHPプログラムを書いたらマイナス21億行目あたりでエラーが出た - hnwの日記

    (2016/10/5 20:40 追記)誤解を招いている部分がありそうなので文末に補足を追記しました。巨大なプログラムをわせただけでPHPが死ぬわけではありません。 毎度おなじみ、意図的に重箱の隅をつついてみたよって話です。あるPHPプログラムを実行したら次のようなエラーに遭遇しました。 $ php over-2g-lines.php int(0) PHP Fatal error: Uncaught Error: Call to undefined function var____dump() in /Users/hnw/over-2g-lines.php:2150000004 Stack trace: #0 {main} thrown in /Users/hnw/over-2g-lines.php on line -214496729221億5千万4行目で致命的エラーが発生したよ!とい

    PHPプログラムを書いたらマイナス21億行目あたりでエラーが出た - hnwの日記
    sds-page
    sds-page 2016/10/06
    いかれてる
  • PHPの次

    ああまたか、と思った。フレームワークを使用しているのに、フォームフィールドをベタ書きして、条件分岐を駆使して、その値や、エラー文字列を表示させている。 外注が作ったプログラム。 初めはもちろん頭にきたが、なんかもう、PHPってこんなもんなのかな、と思った。 こういうコードを見たのは一回でも、一社でも、ない。 それでもこの会社たちはこれで仕事をもらい金をもらい回っている。 所詮私が関われるレベルの仕事だ。別に大した規模でもない。悪党たちや、暇人たちが、ちょっかいだすメリットなどない。 BASIC認証があってデータベースのアカウント認証があって一部の限られた人しか使わなくて…。それでも私は入力値チェックをする。入力画面と確認画面と処理画面で、する。エスケープをする。SQLはLIKE文のエスケープも、するよ?HTML出力は文字列全部にエスケープするから、名前に記号、使えるよ? 当たり前だよね?

    PHPの次
    sds-page
    sds-page 2016/07/04
    意識高い外注さんが既にあるテンプレート使わずに独自実装で車輪の再発明満載で困った。「僕の考えた最強のAltJS」が氾濫するのもこの辺の意識高さが原因だろう