認証が必要な画像を送信する際に、PHPでチェックをした上で、送信するが、 何度もリクエストされると嫌なので、ブラウザのキャッシュを有効にして送る。 PHPは標準機能がキャッシュ無効ヘッダ(pragma :no-cache)を送るので、明示的に上書きしないと効果がでない。 <?php $file_name = some_function(); //画像タイプ判別 $type_id = exif_imagetype($file_name); $type_name = image_type_to_mime_type($type_id); //var_dump($type_name); //最終更新日を作成(キャッシュ用) $last_modified = filectime($file_name); ///もしキャッシュ更新確認リクエストなら if(isset($_SERVER["HTTP_IF
Cookie がシリアライズ可能なcURLのラッパークラスがあんまり無いような気がしたので作ってみました。 Source BSD2条項ライセンス でお願いします。 <?php /** * cURL * * @author CertaiN * @github https://github.com/Certainist/cURL * @license BSD 2-Clause */ class cURL implements Serializable { /** * Default User-Agent. * * @static * @access public */ public static $defaultUserAgent = 'Chrome'; private $ch; private $fp; private $userAgent; private $cookie; /** * Y
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 脆弱性について 参考リンク PHPにおけるファイルアップロードの脆弱性CVE-2011-2202 PHP 5.4.1リリースのポイント 上記に対する補足説明 PHP 5.4.1以降 PHP 5.3.11以降 どちらかを満たしているならば,脆弱性は(今のところ)無い.どちらも満たしていないと, $_FILES 変数の構造を崩す攻撃 ../ をファイル名に含めて送信する攻撃 (ディレクトリトラバーサル) の何れか,もしくは両方の脆弱性を所持していることになるので要注意. 脆弱性対策と注意事項 $_FILES Corruption 対策 改竄されたフォームからの複数ファイル配列送信対策 脆弱性が修正された環境でも 改竄フォーム対策 も兼ねて
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 これは何? filter_input_array 関数の惜しいところを使いやすく、安全にした強化版です。 フィルタリングされる変数名を多次元配列で定義できます。 cURLにおけるファイルアップロードに関する問題の解決策としてPHP公式が採用した葉要素にオプション専用のクラスを用意するという手段を真似て、任意のフィルタによる再帰的フィルタリングを可能にしました。(詳しくは 「PHPでcURLのクソ仕様 "@" を回避する」 で紹介しています) filter_input_simple 関数との比較 filter_input_simple filter_input_array_recursive
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 予備知識 PHPはフォームから送信された値などをコード実行開始に自動的に変数として使えるようにしてくれる非常に便利なプログラミング言語です.しかし,それをそのまま用いるとエラーが発生したり,脆弱性になってしまったりするケースがたくさんあります.使う前には適当なチェック処理が必要です. どういった変数が対象になるか 以下に挙げられた変数は,ユーザーが勝手に値や構造を書き換えたり,送信をそもそも行わずにアクセスしたりすることが可能な信用できない変数だと思ってください.例え,ラジオボタンで選択肢を限定していたり,隠し要素として埋め込んでいたりしたとしても,これに該当してしまいます.
はじめに 今回の記事は PHP を想定しています。 PHP は WEB サイトで最も使われていて、初心者がとっつきやすく、セキュリティーホールのあるシステムを最も多く生み出し続けている言語ですよね( ̄▽ ̄;) そこで WEB プログラミングの初心者の方をターゲットに、出来るかぎり分かりやすく書いてみます。 というのは建前で、今週末にある PHP セキュリティのお勉強会の予習です。 記事の内容を他人の公開サーバーで試すと犯罪になる場合もあるので注意してね。 セキュリティを確保するにはシステムのアップデートが欠かせませんが、PHP は後方互換性に乏しく、バージョンアップが高コストなため、問題のあるバージョンのまま放置されたシステムになりやすく危険な言語だと思っています。 これは Ruby も同じで、私が言語を選べるなら、どちらも使いません。 堅い言語なら Java か C#(ASP.NET)、
2024.06.27 【縦配信 実機配信】 サミー P真・北斗無双FWG「ホクトシンケンニ、ニータイイチノタタカイハナイッ!!」 2024/06/26【パチンコ実機ライブ配信】 #パチンコ #パチスロ #配信パチ #配信スロ #パチンコ実機 #パチンコ実機配信 #パチスロ実機配信 #shorts 高評価・チャンネル登録してもらえると主は嬉しいデス~ チャンネル登録しておくと通知が送られて配信がすぐ見れたりできるよ~ ※所持機種については下をスクロールすると載ってます 初見さんや常連さんへ ORIGINと申します。ご視聴ありがとうございます 本日は「サミー P真・北斗無双F […]
AngularJSアプリケーション開発ガイド を読みながら勉強したときのメモ。 HelloWorld AngularJS を入手する 公式サイトから angular.min.js をダウンロードする。 HTML を書く <html ng-app> <head> <script src="angular.min.js"></script> <script src="helloWorld.js"></script> </head> <body> <h1 ng-controller="HelloWorldController">{{message}}</h1> </body> </html> angular.min.js を読み込む。 ng-app ディレクティブを付けたタグの中が、 AngularJS のテンプレートとして処理される。 ng-controller ディレクティブを付けたタグの中
(150522追記)本稿の続編としてAngularJSモダンプラクティスを掲載しました。本稿は2014年9月に執筆し、情報がかなり古くなっています。続編では、AngularJS 1.4やAngular 2に関する情報をまとめ、入門者への新鮮なチュートリアル、熟練者の移行手引として作成しました。どうぞご覧ください。 この記事は記録のため残します。 AngularJS歴1年の筆者による個人的なAngularJSアンチパターン集です。自分のための戒めとメモを兼ねています。個人差があると思いますので、参考程度に。 また、筆者はTypeScriptで書いています。 Components ComponentsのDI数が6以上になる 危険度★★★ angular.module('myApp') .service('FooService', [ '$q', '$resource', '$rootScope
REQUEST_TIME_FLOAT, REQUEST_TIME は $_SERVER を直接参照しないと取得できない。 <?php var_dump( $_SERVER["REQUEST_TIME_FLOAT"], $_SERVER["REQUEST_TIME"], filter_input( INPUT_SERVER, "REQUEST_TIME_FLOAT" ), filter_input( INPUT_SERVER, "REQUEST_TIME" ) ); // float(1396327090.6449) // int(1396327090) // NULL // NULL <?php $user = filter_input( INPUT_SERVER, 'PHP_AUTH_USER'); $pw = filter_input( INPUT_SERVER, 'PHP_AUTH_
2014年でも html を解析してゴニョゴニョするなんて要件はまだまだある訳で、そんな時に便利なのが pup というコマンドです。 EricChiang/pup - GitHub README.md pup pup is a command line tool for processing HTML. It reads from stdin, prints to stdout,... https://github.com/EricChiang/pup 通常、こういったツールは perl や ruby、python 等で提供されランタイムがインストールされていない環境で動かすのはちょっとした手間が発生していました。しかし pup ならば golang で出来ているのでバイナリ1つあれば動かせます。 使い方は、例えばこのサイトのパーマリンクのHTMLを得たいならば curl -s http:
前回の続きです。 無料で作るWebサービス Herokuを使ってWebサービスを作ってみた(前編) - 今日学んだこと 作ったアプリをherokuに上げます なお、参考にしたのはこちら Getting Started with Django on Heroku | Heroku Dev Center heroku toolbeltのインストール 僕が試している環境はubuntuなのでubuntuでのやりかたですが、macでも変わらないと思います。 $ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh で、heroku使うためのツールがインストールされます。gemから入れるのが一般的っぽいんだけど、うまく動かなかったのでこちらで。マジruby嫌い・・・ 環境の吐き出し Djangoのmanage.pyがあるディレクトリに
休日。何かしなければという焦りがあるんだけど、何をしようか思いつかない。 現在の飯のタネである(僕はいわゆるSIer)システム系の勉強を、最近してないことに気づいてはいるんだけど、インフラの構築に気が行ってしまって、なかなかスタートを切れない(どうせなら借りているVPSに対して色々と自動化して・・・と)。 そこでインフラの部分に気を取られることは無いHerokuを使って、何か作ってみることにした。 >> できあがったもの >> http://studysuggest.herokuapp.com ※後ろの方にも書いてますが、綺麗に何かを作るより、まず動くものを作って公開するというのを主題にしてます。 Herokuとは ざっくりとまとめると 高負荷でなければ無料で利用できる 定期的にバックグラウンドで◯◯動かす みたいな事やると、無料枠超える可能性出てくるので注意 gitにソースを上げて、流し
$Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ
個人用メモ。 ※見てくれる人が多いようなので追記しました。 そのうちまた追記します リテラル 詳しくはドキュメント読みましょう http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2fliteral.html Stringの配列 %w(a b) # ["a", "b"] %w|a b| # ["a", "b"] 区切り文字は()以外にも<>とか[]とか||でも Stringの配列で式展開(W大文字) c="CCC" %W|a b #{c}| # ["a", "b", "CCC"] Symbolの配列 %i(a b) # [:a, :b] Symbolの配列でも式展開できる c="CCC" %I|a b #{c}| # [:a, :b, :CCC] 正規表現 /Ruby/i # 大文字小文字区別しない String 1文字 ?a # "a" 普通の式展開
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く