タグ

phpに関するmirutoのブックマーク (200)

  • PHPを用いた入力フォームの「ファイルアップロードサイズ制限」にまつわる覚書 - Qiita

    初Qiita...ども... 俺みたいなエンジニア三年目間近でこんな戒め記事書く人間、他にいますかっていねーか、はは backlogで来ていたこの前のクライアントの依頼 「フォームにサイズ制限を超えた添付をしてきた奴はエラーメッセージ出したフォームに戻してほしい」とか ま、それが普通ですわな かたや俺は電子の砂漠で技術記事みて、電話返すんすわ。「割とすぐいけると思います」 It's a death flag. 猪突猛進? それ、褒め言葉ね。 適当に添付したファイルのサイズ: 2GB var_dumpで見たPOSTデータの中身: array(0) { } 大容量添付送ったらPOSTが空になって他の入力値も消失っすよ(笑) (この上"どの画面に飛ぶか"も$_POSTに持たせる処理がありフォームに戻すことすらできない) あーあ、未熟エンジニアの辛いとこね。これ。 アップロード処理にまつわるサイズ

    PHPを用いた入力フォームの「ファイルアップロードサイズ制限」にまつわる覚書 - Qiita
    miruto
    miruto 2023/11/17
  • 駆け出しエンジニアの皆さんに知ってほしい脆弱性のこと。

    セキュリティは難しいです。 ですが、プログラミング初学者の皆さんは必要以上に萎縮せず、どんどんアプリケーションを作り、公開することにチャレンジして欲しいと私は思っています。 一方、事実として、脆弱なアプリケーションが公開されている(サーバ上でアクセス可能な状態になっている)だけで、全く無関係な第三者が被害を被る可能性があることは知っておく必要があります。 それはWordPressを使った単なるWebサイトであったとしても同じです。 また、あなたのアプリケーションが破壊されて困らないものであったり、 個人情報を保持していないものであったとしても、です。 だから、知らなかった、では済まされないこともあります。 この記事では、PHPのソースを例に、 特にプログラミング初学者が生み出しやすいアプリケーションの脆弱性について、 具体的なコードを挙げながら解説します。 なお、記事のサンプルコードはも

    駆け出しエンジニアの皆さんに知ってほしい脆弱性のこと。
    miruto
    miruto 2020/09/27
    ]
  • 個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita

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

    個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita
    miruto
    miruto 2018/03/09
  • PDOに複文実行を禁止するオプションが追加されていた

    エグゼクティブサマリ PHP 5.5.21、PHP 5.6.5 以降、PHPにPDO::MYSQL_ATTR_MULTI_STATEMENTSというオプションが追加され、PDO+MySQLの組み合わせで、SQLの複文を禁止できるようになった。この設定はSQLインジェクションの緩和策として有効である。 はじめに 2013年12月に公開した PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能 にて、PDOとMySQLの組み合わせで、SQLインジェクションの文脈で複文呼び出しが可能であることを報告していましたが、その後のPHPのバージョンアップで、複文実行を禁止するオプションが追加されていましたので報告します。 対象のバージョンは以下の通りです。 PHP 5.5.21 以降 PHP 5.6.5 以降 全ての PHP 7.0、7.1 前述の記事を書いた後、3大

    miruto
    miruto 2016/12/19
    次に書く時追加しないと(´・∀・`)
  • [PHP]既存テンプレート用PDFに書き込みをする。TCPDF + FPDI

    こんにちは。 今回PHPを使用しPDFファイルを出力する方法を調べておりました。 そこで調べたものを一部紹介させていただきます。 今回調べたのはTCPDFとFPDIというライブラリです。 TCPDF:PDFを作成し、書き込みを行えるライブラリです。 http://www.tcpdf.org/index.php FPDI:既存のPDFを読み込むライブラリです。 https://www.setasign.com/products/fpdi/about/ 下記は既存の"template.pdf"というファイルを読み込み、 "ILOVEX"と書き込んだPDFファイルをブラウザ上に出力します。 今回はこれだけですが、他にも writeHTML(); HTMLPDFに書き込む Image(); 画像をPDFに書き込む Cell(); セルを書き込む というようなこともできます。

    [PHP]既存テンプレート用PDFに書き込みをする。TCPDF + FPDI
  • PHPでPDF帳票を出力する方法(TCPDF + FPDI) - Qiita

    PHPPDFを出力する場合、PDFlib や FPDF 、haru などさまざまなソリューションがありますが、たとえば、請求書や納品書といった、レイアウトが複雑なデザインの帳票を出力したいときには、 既存のPDFをテンプレートとして活用し、そこに必要な文字だけ配置していく ことでソースコードをシンプルに保つことができます。 既存のPDFをテンプレートとして読み込むことができ、かつ無償で活用できるライブラリとして、TCPDF と FPDI の組み合わせをご紹介します。 テンプレートとなるPDFを作成する PDFの読み込みを行うFPDIは、有償のパーサーを別途導入しない場合、PDF 1.5以上のファイルをパースすることができません。テンプレートとなるPDFファイルは PDF 1.4以下の圧縮形式で作成する必要があります。 また、PHP上から文字を配置する場合、座標を使用するため(左から10m

    PHPでPDF帳票を出力する方法(TCPDF + FPDI) - Qiita
  • 初心者を戒めるPHP - Qiita

    この記事は何か 挑発的な文言になってる箇所はあるものの、内容としてはそれなりにまじめに書いたつもり。むしゃむしゃしてやった。いまでは反芻してゐる。 PHPDocは必ず書け あらゆる再利用可能な手続きは、他人が容易に応用できるように型が明示的でなければいけない。メンバー全員が実装コード全てを把握できるものならそれが理想だけれど、残念ながら時間は有限だ。ヘッダだけを読んでメソッドの仕様が理解でき、またはコードを読む助けになるようなコメントが良い。 有名な事実を紹介すると、多くのコードは数か月(早ければ数日!)も経てば、他人が書いたコードに感じられるほど理解できなくなることがしばしばある。もちろん設計の練度にもよらうが、設計判断について注意を要した点などをコメントに残しておくことで、ひいては未来の自分の役に立てることができる。 お前の先輩は「PHPには型がない」などと知ったかぶって意味不明1なこ

    初心者を戒めるPHP - Qiita
    miruto
    miruto 2016/06/16
  • PHPオブジェクト指向入門(前半) - Qiita

    コンセプト オブジェクト指向プログラミング未経験者~理解を深めたい人、ノンケ~ホモまで幅広くカバーするつもり。多分。 クラスとオブジェクト(初級) 唐突ですが、量産型のロボットの設計・製造について考えてみましょう。 ロボ太郎 ロボ次郎 イラストで初心者を釣る クラス まず、ロボットの設計図を クラス として定義します。設計図をもとにロボットを製造するには、 new 演算子を使います。製造された物体のことを オブジェクト や インスタンス と呼びます。ここではこれらの用語を区別せずに用いることにします。 Yahoo!知恵袋 - オブジェクトとインスタンスの違い

    PHPオブジェクト指向入門(前半) - Qiita
  • Googleカレンダー情報をPHPで取得してみる2

    こんにちは、システムエンジニアの今井です。 以前、「Googleカレンダー情報をPHPで取得してみる」を公開しましたが、今回は「サービスアカウント」方式の使い方について書きたいと思います。 以前はサーバーキーを使ってGoogleカレンダー情報を取得してみましたが、 取得するGoogleカレンダーを一般公開する必要があり、一般公開したくないカレンダーには向かないというデメリットがありました。 ※一般公開すると、世界中のユーザから閲覧できてしまいます。 「サービスアカウント」方式を使うことで、一般公開したくないカレンダーからデータを取得できるようになります。 1.今回してみること 自分のGoogleカレンダーの「hoge」という名前のカレンダーから情報を取得したい PHPプログラムで「hoge」カレンダー情報を取得して、var_dumpする PHPプログラムはカレンダー情報の読み込みだけを行う

    Googleカレンダー情報をPHPで取得してみる2
  • PHPでyoutubeから更新分の情報を取得する(スクレイピング) | 勉強したことのメモ

    「○○のサイトから自動更新分を持ってきて 自サイトに反映させらへん?」と以前に聞かれたことがあって、 調べてみたのでメモ。 テストの条件として、 ・取得先はyoutube ・検索ワードである程度絞る ■ソース <?php $url = 'ここにURL'; //検索クエリ付きのURLでOK $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url) curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $line = curl_exec($ch); $line = mb_convert_encoding($line,'UTF-8','auto'); $pattern="/<a class=\".*?\"[\n|\s]*dir=\".*?\"[\n|\s]*title=\"(.*?)\"[\n|\s]*

    miruto
    miruto 2016/05/06
  • phpによるスクレイピング処理入門

    1. はじめに このサイトは php を利用したスクレイピング処理の具体的手法について記載されたサイトにしようと思っています。なので、あまり面白いサイトではありません。内容も偏重していることと思いますが、ご質問などがございましたら、りょーちまでご連絡ください。 1.1. スクレイピングとは スクレイピングの話しを始める前に、現在のWebサービスについて幾つか言及しておきます。 現在様々な会社が様々なWebサービスを展開しています。かなり昔、今よりWebサイトそのものが少ない頃の時代は、HTMLファイルを手動で作成することが殆どでした。しかし、現在はバックグラウンドにデータベースが存在し、データベースの内容を動的に表示し、ページを作成するようなサイトがかなり多くなっています。 さて、データベースを利用するメリットは何でしょうか? 幾つかの視点が挙げられると思います。 最も重要な点は、ひとつひ

  • Webスクレイピングのノウハウを公開します | 東北ギーク

    photo credit: the local eye sore : man scraping illegal billboard, castro, san francisco (2014) via photopin (license) こんにちは。リスペクトの木村です。 今回は「スクレイピング」についての話題をお送りします。 スクレイピングとは ウェブスクレイピング(Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラー(Web crawler) あるいはウェブ・スパイダー(Web spider)とも呼ばれる。 ウェブスクレイピングWikipediaより 要するに、「APIを利用せずにWebページのHTMLデータを収集して、データを抽出したり整形する技術」の事を指します。 収集方法も様々で、最近ではkimonoのようなサ

    Webスクレイピングのノウハウを公開します | 東北ギーク
  • https://remotestance.com/blog/3064/

    miruto
    miruto 2016/04/18
  • hiddenなinput要素のXSSでJavaScript実行

    脆弱性診断をやっていると、たまにtype=hiddenのinput要素にXSSがあるけど、現実的な攻撃には至らないものにぶちあたることがあります。サンプルコードを以下に示します。 <body> 入力確認をお願いします。 <?php echo htmlspecialchars($_GET['t']); ?><br> <form action='submit.php'> <input type='hidden' name='t' value='<?php echo htmlspecialchars($_GET['t']); ?>'> <input type='submit'> </body> 正常系の呼び出しは下記のようになります。 http://example/hidden-xss.php?t=yamada HTMLソースは下記の通りです。 <body> 入力確認をお願いします。 yamad

    hiddenなinput要素のXSSでJavaScript実行
  • [PHP]パスワードのハッシュ化にはcrypt が便利 | ブログが続かないわけ

    【2009/01/27 追記】 このエントリは間違っているので、次のエントリも併せてご覧ください。 [PHP]パスワードのハッシュ化にはcrypt を使ってはいけない パスワードをDBに保管するとき、プレーンテキストのままじゃダメってのはもういいよね。 (参考)ブログが続かないわけ | パスワードを平文で管理するのはダメだ で、そのときどうやってハッシュ化するかというお話。 まず、大前提として復号可能な暗号は避けた方がいい。パスワードを復号しなければならないというシーンはほとんどないので、それであれば復号できない方がセキュリティ上安全だからだ。復号できない方式でハッシュ化すれば、もう、誰にもパスワードはわからない状態になるからね。 やり方としてありがちなのはMD5 によるハッシュ化 $pass = 'my password'; $pass_hash = md5($password); //

    [PHP]パスワードのハッシュ化にはcrypt が便利 | ブログが続かないわけ
    miruto
    miruto 2016/04/10
  • PHP製のWebアプリが遅い場合の基本チェック6点 - ほんじゃらねっと

    先日別のチームから、 「PHPで作成したWebアプリの速度が遅いので助けてくれー」 という相談を受けた。 対応したものの、結構時間がかかって面倒だったので、 今後こういった問題が起こった時に使えるよう、チェックリストをまとめてやった。 基的な内容だけど、 このチェックリストの内容をやってみて、それでもダメなら相談しなさい、 と伝えておくことで相談を減らすフィルタとして働いてくれるはずだ。 PHPプロジェクトに限らず、バックエンドでデータベースを使用している Webアプリのプロジェクトなら試す価値のあるものが多いはず。 調査や対応方法の手軽さ順で並べるとこんな感じ: Webブラウザのデベロッパーツールでレスポンスを計測する Webサーバ(Apache)のリクエスト時間をログに出力する ログ解析ツールでURL毎の付随リクエスト数を確認する データベースのスロークエリログを出力する プロファイ

    PHP製のWebアプリが遅い場合の基本チェック6点 - ほんじゃらねっと
    miruto
    miruto 2016/03/14
  • Instagram APIを取得してWebサイトと連携し、投稿写真を自動に掲載する方法 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    おはうぃーす! しょごです。 先日ノートPCを購入しました、これでスタジオでドラム録音とか動画作成とか気兼ねなくできます。 久しぶりに演奏動画でもアップしよう、、ゲーム実況もいいな。。。ふふふ。。 さて、今回はInstagramAPIを使ってWebサイトと連携したときの話です。 Instagramとは iPhoneAndroid端末で写真を撮影し、共有するスマートフォンアプリのことです。Webからも閲覧でき、固有アカウントを設けて投稿管理ができる写真特化型のSNSです(もちろん無料)。 Twitterのようにフォローした人の写真がタイムラインに流れてきて、アップロードした写真には「いいね!」やコメントを付けることができます。アプリ内のカメラで撮影した写真や、カメラロールの写真を選択して手軽にアップロードができます。 プライベートモードで非公開設定も可能。Twitterとの最も大きな違いは

    Instagram APIを取得してWebサイトと連携し、投稿写真を自動に掲載する方法 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • DIS例2 / PHPは配列型と辞書(HaspMap)型が区別不能な言語! | PHPを使いもせずDISってる君達へ - Qiita

    PHPはよくDISられることがあります。しかし、実際にはほとんどPHPを利用していない人が印象だけでDISってることが多いような気がします。 そこで、PHPがよくDISられている点について、実際どうなのかをPHP未体験者向けに解説していきたいと思います。PHPを触ったことない人でもわかりやすいようにシンプル目な仕様のRubyを例に説明していきたいと思います!( Ruby触ったことなくても、その他のOOP言語を触ったことあれば雰囲気は理解できるように書いています ) DIS例1 / PHPは配列操作がしづらい PHPの配列操作は扱いづらい等とDISる人たちがいます。実際のところどうでしょうか。 以下のような処理を配列への中間変数を用いず行うコードを例に考えてみます。 0. [2,4,6,8,10]という配列を用意して 1. ↑の配列から8以下の数だけを選択した配列を作る 2. ↑の配列から各

    DIS例2 / PHPは配列型と辞書(HaspMap)型が区別不能な言語! | PHPを使いもせずDISってる君達へ - Qiita
    miruto
    miruto 2015/12/23
  • PHP初心者が仕事で躓いた4つの罠 - pixiv inside [archive]

    こちらはピクシブ株式会社 Advent Calendar 2015の2日目の記事です。 こんにちは。Vimエンジニアの kana です。 さて、皆さんもご存知の通り、WebサービスpixivにはPHPが使用されています: PHPについては様々な噂を聞き及んでいた為、 これまでPHPとは関わらないように注意して過ごしてきましたが、 pixiv.netの開発ではPHPを避けて通ることは出来ません。 仕方なくPHPを使うことになる訳ですが、 実際に使ってみると……これが予想していた以上に様々な方向から毎日新鮮な驚きを届けてくれます。 今回は実際に遭遇したPHP初心者が躓くポイントを幾つか紹介しようと思います。 switch の中で continue したら switch の直後に飛ぶ 大量のデータをループでぶん回して処理するのはよくある話です。 その中で特定の種類のデータについては処理をスキッ

    PHP初心者が仕事で躓いた4つの罠 - pixiv inside [archive]
    miruto
    miruto 2015/12/03
  • PHP帝国の逆襲!(を願うPHPerが話す最近のPHPについてのクイックツアー PHP7対応版) - YAPC::Asia Tokyo 2015

    PHP帝国は滅んでいない。新たなる希望を待ち、逆襲の機会を虎視眈々とねらっている」 遠い昔、はるか彼方の銀河系で…はなくて、去年、私は 私が愛するPHPはまだまだイケてる! とホールで叫び、なんと皆様からベストトーク賞をいただけたYAPC::Asia Tokyo 2014から1年が経ちました。 あれからPHPに新しい事は起こったか?勿論起こりましたし、さらに 起こりつつあります! 皆さんに是非お届けしなければ!ということで、今年もPHPの話をさせてください! 次のPHPは5.6から一気に7にバージョンアップされます 。「5.6の次が7って、おくればせながら流行にのってメジャーバージョンを切り捨てて5.7を7にしただけじゃないか?」なんてことはなく、メジャーバージョンアップにふさわしく変わります。 PHPなりに 高速に、安全に、パワフルに 生まれ変わりを果たそうとしています。その 来たるべ

    miruto
    miruto 2015/11/10