趣味でやっている人のことは、まあ、いいとして(踏み台にされる可能性はあるけど)、仕事でPHPを使うときの注意を書いておこう。 コーディング規約を守る。組織にコーディング規約がないなら、Zend Framework PHP標準コーディング規約 [zend.com]を使う。オレ流コーディングスタイルは禁止。 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0x5Cを含む文字の動作を忘れずに確認する。 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。 register_globals、magic_quotesはオフにする。 type hintingを積極的に使う。 スコープの長い配列をクラスでラップする。 プレゼンテーションとロジックを分割すること。プレゼ
htmlspecialchars ( ) でセキュリティ対策( ENT_QUOTES もね!) PHPのhtmlspecialcharsにはENT_QUOTESを付ける。 htmlspecialchars でXSS対策をしていたと思ったら、デフォルトでは シングルクオートをエスケープしてくれない(マニュアル参照) htmlspecialchars($str, ENT_QUOTES); ENT_QUOTES を指定することで、シングルクオートも ' にエスケープ出来ます。 ZAPAブロ〜グのZAPAさんの指摘するh関数を定義してフレームワークなどに組み込んでおくのがスマートなのかもしれませんね→htmlspecialchars関数を簡単にする 意外に知られていないかもしれないので、念をのため紹介しておきます。(知っている人はごめんなさい) その危険な例をしめしてみます。 例えば、h
ドットインストール代表のライフハックブログ
連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp … 技術評論社 なぜPHPアプリにセキュリティホールが多いのか?特集、がいつのまにか充実していますね。 第1回 CVEでみるPHPアプリケーションセキュリティ 第2回 CVEでみるPHPアプリケーションセキュリティ(その2) 第3回 Webアプリは気楽なアプリ?! 第4回 なぜPHP本体にバグが多いのか? 第5回 まだまだ残っているSQLインジェクション 第6回 意外に知られていないブラインドSQLインジェクション 第7回 いまさらながらクロスサイトスクリプティングの基礎の基礎 第8回 クロスサイトスクリプティング対策の落とし穴 第9回 クロスサイトスクリプティングの名称と種類 第10回 スクリプトインジェクションが無くならない10の理由 第11回 スクリプトインジェクションを防ぐ10のTips 参考にさせて頂きまし
PHP技術者認定機構、ウェブセキュリティ試験を導入--サイバー攻撃の激化を受け ウェブサイトを狙うサイバー攻撃の脅威が高まっていることから、PHP技術者認定機構は開発者やユーサーを対象にウェブセキュリティ試験を導入する。 2018-12-12 11:25:00 「etcd」がCloud Native Computing Foundationのインキュベーティングプロジェクトに Kubernetesクラスタの情報を保持する分散KVSプロジェクトのetcdが、Cloud Native Coputing Foundation(CNCF)にインキュベーティングプロジェクトとして加わった。 2018-12-12 11:07:00
昨日の日記で、DK祭りで使われている脆弱性がXSSかCSRFかという問題になった。どうも、XSSとCSRFがごっちゃになっている人もいるように見受けるので、簡単な整理を試みたい。 XSSとCSRFには似た点がある。 どちらも「クロスサイト」という言葉が先頭につく なりすましのようなことが結果としてできる どちらも受動型攻撃である それに対して、もちろん違う点もある。専門家から見れば「似てるも何も、そもそも全然違うものですよ」となるのだろうが、現に混同している人がいるのだから紛らわしい点もあるのだろう。 私思うに、XSSとCSRFの決定的な違いは、以下の点ではないだろうか。 XSSは攻撃スクリプトがブラウザ上で動くが、CSRFはサーバー上で動く このため、XSSでできる悪いことは、すなわちJavaScriptでできることであって、攻撃対象のCookieを盗み出すことが典型例となる。一方、CS
PHPで作られた3キャリア対応絵文字変換ライブラリ「MobilePictogramConverter」 Tweet 2007/11/14 水曜日 matsui Posted in PHP, ソフト紹介, 記事紹介・リンク | 7 Comments » 今回は、「MobilePictogramConverter」という、PHPで作られた3キャリア対応の絵文字変換ライブラリをご紹介します。 私が以前作成したKEMPというソフトの中にも、絵文字の変換処理は入っているのですが、絵文字変換機能に特化しているだけあって、こちらの方がかなり多機能です。 ページはこちらです。 → MobilePictogramConverter [php-develop.org] 開発Blogもあります。 → はてなダイアリー PHPとか [hatena.ne.jp] 特に素晴らしいのが、PCでも絵文字が表示できるように
Javascript で HTMLエスケープを行うPHP関数、htmlspecialchars を実装 2007年11月12日- Javascript htmlspecialchars Javascript で HTMLエスケープを行うPHP関数、htmlspecialchars を実装するコード。 JavaScript でも HTML エスケープをしたい場合が結構あったりします。 PHPに慣れている方は htmlspecialchars 関数があったら使いやすいかもですね。 function htmlspecialchars(ch) { ch = ch.replace(/&/g,"&") ; ch = ch.replace(/"/g,""") ; ch = ch.replace(/'/g,"'") ; ch = ch.replace(/</g,"<")
DOBON.NET プログラミング道「DOBON.NET プログラミング道」では、まだまだプログラミング勉強中の私「どぼん!」が、Microsoft .NET Framework、VB.NET、C#、Visual Basic、Visual Studio、インストーラなどについて調査、研究した結果を発表させていただいています。 .NET Framework研究.NET プログラミング Tips.NET Frameworkプログラミング(主に Visual Basic .NET と C#)で役に立ちそうな小技を、ソースコードとサンプルを交えて紹介。 メールマガジン「.NETプログラミング研究」.NET FrameworkプログラミングのTipsやFAQなどをメールマガジンでお届け。 DoboWikiASP.NET無料ホスティング紹介ASP.NETが使える完全無料のホスティングサービスに関する情
RestTest RESTTest allows you to construct custom HTTP requests to directly test requests against a server. HTTPのGET/PUTリクエストを直接行えるHTTPテストツール「RestTest」。 特定のURLに対してGETするのはブラウザのアドレスバーからも行うことが出来ますが、POSTしたり、ヘッダーを設定することは出来ません。 RestTest はFirefoxの拡張機能で、POST値を適当に調節したり、ヘッダーを独自に書き換えることが可能です。 ヘッダーは Headers 欄を適当に埋めればOK。 POST/PUT dataの欄には、〜=〜 の形式で入力すればOK WEB開発に活用できそうですね。
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
puRe aka Marcel Oelke Record mouse movement using Javascript and AJAX マウスの軌跡をJavaScriptとPHPで記録し再生するサンプル。 mousemove イベントハンドラの発生ごとに、Ajax で座標をサーバ側に送信し、PHPでデータを保持する仕組みで実装されているようです。 クリックイベントも取って再生することも出来るみたいです。 prototype.js ベースで、実装されているみたいですが、応用して、サイト利用者のサイトの利用法について調査することなどが可能になりますね。 実際の動作デモはこちら
まず、日本のサイトにある一般的な登録フォームの画面遷移は 入力画面→入力確認画面→完了画面 となっている場合が多いようです。ここでリロード問題となるのは完了画面でのDBへのINSERT処理やCSV書き出し処理、メール送信処理など「一度しか行わない処理」です。例えば完了画面へ遷移した際にブラウザのリロードボタンが押された場合、確認画面よりsubmitした情報が再度submitされて上記の一度しか行わない処理が二度行われてしまいます。そうならないよう、リロード対策はスクリプトで制御します。 まずは確認画面のスクリプト 確認画面でチケットを発行し、セッションに保存しておきます。同時に完了画面へチケットがPOSTされるよう、hiddenにセット。こうして完了画面へ遷移させます。それでは完了画面のスクリプトを見てみましょう。 このように、確認画面で発行されたチケットは一度使い切ってしまえば2度処理さ
The Eclipse Foundationは15日、Ajax開発用プラグイン「Eclipse Rich AJAX Platform 1.0」(RAP)をリリースした。公式サイトより無償でダウンロードできるほか、Eclipseの更新機能に以下のURLを登録することで入手できる。 http://download.eclipse.org/technology/rap/update-site RAPのアキーテクチャはRCPに似ており、RAPのフレームワークを利用することで簡単にRIAを作成することができる。開発者はEclipseで提供されているData Tools Platform(DTP)などと連携しながら、Ajaxアプリケーションの開発やデバッグなどを行うことが可能となる。 すでにRAPを利用したワークベンチアプリケーションやメールクライアントなどのデモが用意されており、これらを参考に
はじめに セカンドライフは、オンラインゲームの類ではなく、3次元オブジェクトのレンダリング・ツール、モデリング・ツールであり、作成したオブジェクトを共有するための空間を提供するストレージ・サービスであると考えるべきです。そして、オブジェクトにLSL(Linden Scripting Language)と呼ばれる専用のスクリプト言語を実行させられる、一種のアプリケーション実行環境であるとも捉えられます。 ところが、経験あるアプリケーション開発者であれば、すぐにLSLが貧弱であまり実用的ではないということに気が付くでしょう。LSLは柔軟性に乏しく、簡単な計算と用意された関数の呼び出し、定められているイベントの実装程度の機能しか持ちません。クラスや構造体のようなユーザー定義型を作ることはできず、ポインタを使った多態性のあるコードを書くこともできません。 こうした制限からLSLはデータ処理に弱く、
「実用的なPHP用の正規表現x8」というphpspot開発日誌という記事で、 8 Practical PHP Regular Expressions – Web devlopment blogという、今日del.icio.us/popularに出ていた記事の紹介がされている。このサイトの記事はいつもそうだけど、はてなブックマークでも人気で、既に50名を越えるユーザにブックマークされているようだ。 1 メールアドレスチェック $string = "first.last@domain.co.uk"; if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $string)) { echo "example 3 successf
本屋で立ち読みしてたら、Linux Journalって雑誌に "Validate an E-Mail Address with PHP, the Right Way" って記事が載っているのを発見したので、簡単に要約を。 まず、以下のメールアドレスは「正しい」アドレスである、と紹介。 Abc\@def@example.com customer/department=shipping@example.com !def!xyz%abc@example.com これは、RFC3696からの引用。 RFC3696は、Application Techniques for Checking and Transformation of Names (名前の検査と変換のアプリケーション技法) ってやつで、そのなかに、 "Restrictions on email addresses" って章があるみたい。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く