タグ

ブックマーク / qiita.com/mpyw (9)

  • password_verifyは本当にタイミングセーフなのか? - Qiita

    <?php $username = 'ユーザ名'; $password = 'パスワード'; $hashes = [ 'mpyw' => '$2y$10$p3v4KlSFqx11/84YF2xTJu4h5hQKhwsH5/X5bqoVgkY./.vFxf3HS', ]; $result = isset($hashes[$username]) && password_verify($password, $hashes[$username]); password_verifyを実行するかしないかで大きく実行時間に差が現れるため,ユーザ名が存在すること・しないことがバレやすい.これではユーザ名をできるだけ保護したい目的で「ユーザ名またはパスワードのどちらかが違います」のようにメッセージを出したとしても意味が無くなってしまう. では,ただpassword_verifyをとりあえず実行しておけばいい

    password_verifyは本当にタイミングセーフなのか? - Qiita
  • [PHP] Mac版Excelと互換性のあるCSVファイルを出来るだけ効率よく作成する - Qiita

    ポイント mpyw-yattemita/excel-csv-compatibility-check 上記リポジトリで互換性を確認した結果,一般的には,以下の2つのいずれかの選択肢をとるべきであることが分かりました。 Shift_JISでCSV形式にして拡張子csvで保存 UTF-16(LE)でTSV形式にして拡張子csvで保存 この記事では,UTF-16(LE)を取り扱うことを前提とします。 注意点 Unicodeを用いる場合,文字セットに応じたBOMが必要である。 UTF-8なら 0xEF 0xBB 0xBF UTF-16(LE) なら 0xFE 0xFF UTF-16(BE) なら 0xFF 0xFE 「UTF-16(LE)」と「UTF-16LE」は別物なので注意。「UTF-16LE」にはBOMが付かない。 Shift_JISのほうが文字の守備範囲が狭く,絵文字やラテン文字・ハングル文

    [PHP] Mac版Excelと互換性のあるCSVファイルを出来るだけ効率よく作成する - Qiita
  • OFFSETを使わない高速なページネーションの実現 - Qiita

    <?php try { /* SQLite3のテンポラリデータベースに接続およびモード設定 */ $pdo = new \PDO('sqlite::memory:'); $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); $pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true); /* スキーマとレコードの生成 idは絞り込み等で番号が飛んでいることを想定 */ $pdo->exec('CREATE TABLE samples( id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NU

    OFFSETを使わない高速なページネーションの実現 - Qiita
  • PSR-7対応 HTTP/2サーバプッシュ用ミドルウェア - Qiita

    概要 HTTP/2には、HTML内に含まれるリソースに対し、クライアントが次にリクエストを送ってくることを見越して、リクエスト無しにサーバ側から能動的に送るサーバプッシュという機能があります。H2Oやnghttp2といったWebサーバはプリロード用のLinkヘッダを付与することでサーバプッシュを行ってくれるとのことなので、PSR-7対応のミドルウェアを書いてみました… AdventCalendarの人たち怖いので普通に野良投稿 こういうのってmod_mrubyでやったほうが良いの? 例 ミドルウェア定義 <?php namespace mpyw\SampleApp\Middleware; use \Psr\Http\Message\ServerRequestInterface; use \Psr\Http\Message\ResponseInterface; class AutoLinke

    PSR-7対応 HTTP/2サーバプッシュ用ミドルウェア - Qiita
  • QiitaにXSS脆弱性 - Qiita

    Qiitaに発生していた脆弱性について ※ エイプリルフールネタっぽいけど実際に発生していました。 ※ 現在この脆弱性は修正済みです。 問題のあった記事 問題のMarkdown おいしいクッキーをべたい人はここをクリック! **[おいしいクッキーをべたい人はここをクリック!](data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+)** ブラウザ別の挙動 Chrome 33.0 データURIスキームの先で document.cookie を参照することは出来なかった。 Firefox 28.0 データURIスキームの先で document.cookie を参照することが 出来た 。 Internet Explorer とかその他もろもろ 編集リクエストに任せるぜ! 考察 結局これってやばいの?

    QiitaにXSS脆弱性 - Qiita
    Kenji_s
    Kenji_s 2014/08/11
  • __destruct() と __sleep() の順序 - Qiita

    class Test { private $data; public function __sleep() { echo "__sleep() called\n"; return array('data'); } public function __destruct() { echo "__destruct() called\n"; } }

    __destruct() と __sleep() の順序 - Qiita
  • is_uploaded_file() / move_uploaded_file() の必要性? - Qiita

    まだ 「ファイルアップロードの例外処理はこれぐらいしないと気が済まない」 をご覧になっていない方は先にそちらからどうぞ。 問題提起 ファイルアップロード関連の記事を書いているとき、いつも疑問に思っていることがあった。 だからさぁ、 アップロードされなかったファイル の名前がどうやったら $_FILES['upfile']['tmp_name'] に混入できるんだよ!?このチェックいるのかホントに!? なんて思いながら「PHPマニュアルが勧めているから」という理由で訳も分からず記事を書いていた。 歴史的な理由 そう、実はこの関数の背景には 歴史的な理由 があったのだ… register_globals という害悪機能の存在だ。もしこの機能が有効な場合、以下のようなURLでリクエストを受けたとき、不正に /etc/passwd を閲覧される可能性がある。 <?php printf( '<a h

    is_uploaded_file() / move_uploaded_file() の必要性? - Qiita
  • PHPでデータベースに接続するときのまとめ - Qiita

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

    PHPでデータベースに接続するときのまとめ - Qiita
  • ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 脆弱性について 参考リンク PHPにおけるファイルアップロードの脆弱性CVE-2011-2202 PHP 5.4.1リリースのポイント 上記に対する補足説明 PHP 5.4.1以降 PHP 5.3.11以降 どちらかを満たしているならば,脆弱性は(今のところ)無い.どちらも満たしていないと, $_FILES 変数の構造を崩す攻撃 ../ をファイル名に含めて送信する攻撃 (ディレクトリトラバーサル) の何れか,もしくは両方の脆弱性を所持していることになるので要注意. 脆弱性対策と注意事項 $_FILES Corruption 対策 改竄されたフォームからの複数ファイル配列送信対策 脆弱性が修正された環境でも 改竄フォーム対策 も兼ねて

    ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita
  • 1