こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPはセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>
仕事としてコードを書くようになって3週間が経ったので ここらで所感をまとめてみたいと思う。 ベンチャーと大手企業の違いみたいなことを書いてもいいんだけど、 正直今のところ「あまり変わらない」印象。 それもそのはず、現職もエンプラ向けの仕事。 SIと仕事のやり方はかなり似ている。 ので、純粋にプログラマとして思ったことを。 スパゲッティコードとの出会い この3週間で触ったのはウチの会社で改修・保守をやっているシステムの バッチや管理画面の細かい修正など。 コードは全てPHPだった。 この辺は一番経験のある言語だったので助かった・・・と思った。 が、意気揚々とソースを見て愕然とした。 処理ベタ書きのずらずら続く手続き型の処理は序の口。 関数を定義する代わりにベタ書きスクリプトを外出しにしてrequire 意味不明な変数名 同じ処理をしているはずなのに名前だけ違う関数達 無計画なテーブル定義 業
新年あけましておめでとうございます。今年もボチボチやっていきます。 本稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お
PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開 HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。 コンパイラと同等以上の実行速度へ HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。 Our experiences with hphpc led us to start e
新しいことを勉強して、久々に心底感動しました。 Twitter である方が Fuel についてつぶやきをしているのを拝見し、この時初めてその存在を知りました。。 PHP の新しいフレームワークで、複数のフレームワークのいいところを集めたものということだったので、ちょっと触ってみるかとダウンロードしてドキュメントを読みながら Hello World! を作ってみる。すると・・・ こ・・これはすごい・・ なにがすごいって、これまで私は「CodeIgniter」を超愛用していました。CodeIgniter は、もちろんそのほとんどがすごくいいのですが、若干だけ不満があったのです。しかし、FuelPHP では CodeIgniter の好きなところはそのままに、不満が全部吹っ飛んでいたのです。 では、その全貌をご覧入れましょう。 [広告] FuelPHP 入門書の決定版が発売されました。詳しくは、
第3引数を指定していない場合の影響前述のように、htmlspecialchars関数の第3引数を指定していない場合、PHP5.3までは、文字エンコーディングがISO-8859-1が指定されたとみなされます。この場合、入力内容にかかわらず不正な文字エンコーディングと判定されることはありません。したがって、文字エンコーディングのチェックが働かない代わりに、エラーになることもありませんでした。 これに対して、PHP5.4の仕様により文字エンコーディングがUTF-8とみなされた場合に、Shift_JISやEUC-JPの2バイト文字が入力されると、高い確率で「UTF-8として不正」というエラーになり、htmlspecialchars関数の出力は空になります。つまり、プログラムが正常に動作しません。 htmlspecialchars関数の第3引数を指定しておらず、内部文字エンコーディングがShift_
php前提。PHP はクソ。滅びろ。ruby はしらんが python か perl か java のほうがよっぽど楽。javascript は多分同じかもっと地獄。よいところ導入が安い動作環境的な意味でも、コード的な意味でも。置けば動くし、書けば動く。本当に何も知らん人間でもなんとか動く。エンジニアの頭数もそろえやすい。運用コストのスケーリングができるapache+mod_php だけでも普通に早い。apc 入れればそれだけで大抵のリクエストさばける。nginx+php-fpm+apc なんて環境にすればもっとさばける(と思う。まだ試してない。)最悪 HIPHOP-PHP でなんとかできることは Facebook が証明している。ドキュメントが読みやすいphp.net のドキュメントはテンプレートがしっかりしていて全部それにそっているので非常に読みやすい。邦訳も早い。よくないところ標準の
商用利用も無料、Responsive Web Designに対応したWordPressのテーマファイルを紹介します。 ボタン、タブ、パネルなどのページでよく使用するエレメントをはじめ、さまざまなカラムも簡単にショートコードで利用できます。 デモページを幅600pxで表示 Skeletonの主な特徴 Formalizeを使用して各ブラウザ間のエレメントの相違に対応。 Skeletonを使用してMedia Queriesを使った可変カラムに対応。 Option Frameworkを使用してテーマオプションのカスタマイズが可能。 bbPressのフォーラムスキンをインクルード。 見出しや本文などバランスの取れたタイポグラフィ。 デモ:Typography and Elements スマートフォン用のマルチレベルのメニューをサポート。 テーマオプションパネルからフォントや背景画像を設定可能。 タブ
PHPExcelはExcelファイルの読み書きを行うPHPライブラリ。PDF/HTML出力にも対応。 PHPExcelはPHP製のオープンソース・ソフトウェア。業務システムを開発していて必ず発生するのがExcelのような表形式ファイルの取り込みだ。大抵はCSVに変換してもらって取り込むだろう。だがユーザが変換を忘れてExcelを読み込ませてしまうことも度々だ。 PHPで出力できる さらにシステムから資料を出力する際にもCSVをダウンロードして手作業で修正して…という手間をユーザにとらせることになってしまう。そんな時代はもう古い、PHPExcelを使ってリッチなExcelファイルをそのままやり取りしよう。 PHPExcelはExcel 2007をベースとし、5.0/95/97以降のファイル形式の読み込みにも対応している。Excel 2003のXMLフォーマットも扱える。さらにOpenOffi
PEAR2/Pyrus ってどうなったんだっけ? という話はとりあえず一旦置いておいて、最近わりかしカジュアルにPHPライブラリを開発して配布する方法がなんとなく自分の中で定着してきたので超ざっくりまとめておく。 ソースコードはGitHub、開発にはgitflow、配布はOpenpear Openpear で世界征服の話はどうなったんだ、というのは置いておいて、ざっくり、上記の通り、 ソースコードのホスティングは GitHubで 例: https://github.com/sotarok/git-daily 配布は Openpear で 例: http://openpear.org/package/Git_Daily 開発用ツールとしては、gitflow を使う というのが一番楽だと思っている。 ソースコードはGitHub Openpear はとっても便利なサービスで、SVNでのホスティン
Taking screenshots of websites in PHP PHPでWEBサイトのスクリーンショットを作成するチュートリアルが紹介されています。 スクリーンショットの撮影には wkhtmltopdf というオープンソースソフトウェアを利用します。 このソフト自体がMac OS XやWindows、Linuxで動作するコマンドラインツールとなっているようなのでクロスプラットフォームで動作します。 このツールを使えば、「wkhtmltoimage --quality 50 //phpspot.org/blog/ snap.jpg」のようにコマンドを打つことでスナップショットが撮れます。 コマンドラインオプションが多数あるのでPHPerじゃない方も覚えておいて損はなさそうです。 例えば、 JavaScriptをオフにした状態でスクリーンショットを撮ったり、高さや幅の指定、切抜きの
KinoWiki - php/Prhagger 「らこ」と読む。「りゃこ」かと思ったら違った。名前の由来はなんだろう? PlaggerのPHP版「Prhagger」がリリース。 PlaggerはPerlで書かれているので、プラグインを書く場合などは、Perlの知識が必要でした。 同様の仕組みがPHPでもないかな、と思っていたのですが出てきましたね。 Plaggerと違い、設定ファイルもブラウザで作れるようです。 Plaggerはyamlのconfigベースでやるべき事を設定していくが、prhaggerの場合は、コードベース。コードはブラウザから自動的に生成する。だからユーザはコードを一切触らない。 アクションを作るには、prhagger/setup/install.phpにアクセスする。 個人的に、今後の発展を期待しています。
PlaggerのPHP版「Prhagger」がリリース:phpspot開発日誌というエントリにて、私のWikiのメモであるEthnaWiki – php/Prhaggerがリンクされていますが、説明があまりにもわかりにくいので、変な誤解がおきないように説明しておきます。 PRhaggerはhaltが作ったわけではない 私のサイト内を紹介して「リリース」と書かれているので私が開発したような印象を受けたかもしれません。PRhaggerはid:rhacoの人が書いています。 私は野良プラグインしか書いてません。 PRhaggerの読み方は「らこ」ではない phpspotのサイト中で 「らこ」と読む。「りゃこ」かと思ったら違った。名前の由来はなんだろう? と書かれていますが、これはrhacoの読み方であってPRhaggerの読み方ではありません。phpspotの人は何か根本的に勘違いしてます。 P
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く