「ma-san web design」の管理者。東京都・千葉県(千葉市・四街道市・浦安市・佐倉市)・宮城県(仙台市)を中心に企業のWebデザイン/マーケティング/IT戦略のプランニングからWebサイト構築・運用をしています。 「Webアクセシビリティ」を中心に、「変わりゆくWebと共にサービス・サイトを改善していくこと」を重視します。 当サイトではお仕事のご相談からナレッジシェアを中心に活動していきます。
補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2009年10月9日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、PHPのhtmlspecialchars関数の文字エンコーディングチェック不備をついたクロスサイト・スクリプティング(XSS)脆弱性について、PHP側のパッチが提供されない状況での回避策について説明します。 何が問題か PHPにおいて、XSS対策にはhtmlspecialcharsによって記号をエスケープすることが行われますしかし、htmlspecialcharsを利用していても、Shift_JISの先行バイトを利用して、XSSが発生する場合があります。 例えば、以下のようなINPUTがあ
先日、今年の 1 月以来となる Stagehand_TestRunner の最新バージョン 2.7.0 のリリースを行いました。コマンドラインのテストランナーを提供するこのプロダクトは、テスト駆動開発 (TDD: Test Driven Development) をより快適にすることを目的としています。 今回は Stagehand_TestRunner の特徴と使い方をご紹介いたします。 Stagehand_TestRunner とは? Stagehand_TestRunner とは、PHPUnit や SimpleTest といった PHP のテスティングフレームワーク向けに書かれたテストの実行に特化した Piece Framework のプロダクトで、下記のような特徴があります。 指定されたディレクトリに含まれるテストの実行 指定されたファイルに含まれるテストの実行 指定されたファイル
Google Analyticsから訪問数・PV数をPHPでゲットするサンプルコードが公開されています。 Google Analytics PHP API example - SWIS BV にて公開されている、analytics.class.php というライブラリを使ったサンプルになりますが、次のようなコードで簡単に取得できます。 <?php $analytics = new analytics('aaa@aaa.aaa', 'P@ssw0rd'); $analytics->setProfileByName('davidwalsh.name'); $analytics->setMonth(date('n'), date('Y')); // 日ごとの訪問者数を得る print_r($analytics->getVisitors()); // 日ごとのPV数を得る print_r($ana
以下のページに関連して、htmlspecialchars() を使用している場合でも XSS が可能かどうか少し調べてみました。 http://www.tokumaru.org/d/20090930.html その結果、いくつかのブラウザで文字エンコーディングに Shift_JIS を使用していた場合、XSS が可能なことを確認しました。 テストコードは以下の通りです。リンクにマウスポインタを乗せると埋め込んだ Javascript が実行されます。 <?php $_GET['a1'] = "\xf0"; // \xf0 - \xfc で可能 $_GET['a2'] = " href=dummy onmouseover=alert(document.title) dummy=dummy"; header( "Content-Type:text/html; charset=Shift_JIS
今年のPHPカンファレンスジャパンで個人的に一番面白かったid:moriyoshiの発表に触発されてBoost.phpを試してみました。 試した環境 debian lenny githubからBoost.phpを取得する とりあえず最新版だけ欲しい人は--depthオプション使うとすぐダウンロードも終わります。moriyoshi/boost.php · GitHub $ git clone http://github.com/moriyoshi/boost.php.git Boostのソースコードを取得する 動作させるのにBoostが必要なのでダウンロードして適当な所に展開。パッケージに含まれるヘッダファイルだけ必要なのでビルドは不要。yumやaptでさっくり入れてもよいかと思います。 添付しているテストコードをビルドしてみる githubから落としたBoost.phpのコードにテストコー
15 amazing things you can do using cURL | blarnee.com PHP+cURLで出来る便利なサンプルコード15。 以下のような便利そうなコードが掲載されています。 1. 最新のTwitterのつぶやきをGET 2. URLをbit.lyを使って短縮 3. facebookのステータスを更新 4. yahoo.comにログインしてアドレスデータを取得する 5. facebookにビデオをアップロード 6. twitpicに写真をアップロード 7. MySpaceにログイン 8. Youtubeからビデオダウンロード 9. WordPress ブログに記事を投稿する 10. Twitterからトレンドを取得する 11. Amazon S3 にファイルをアップロード 12. Gmailのコンタクトを取得 13. IMDb.com のデータをパース 1
なんだかやけに長い説明ばかり検索に引っかかったので書きました。 Linuxのローカル環境でDockerコンテナ内のXアプリ(GUIアプリ)を利用するには $ xhost localhost + を実行した後に $ docker run --rm --net host -e "DISPLAY" container_image_name x_app_binary_path とすれば良いです。 もっと読む SSHなどよく知られたサービスポートで何も対策せずにいると数えきらないくらいの攻撃リクエストが来ます。不必要なログを増やしてリソースを無駄にし、もし不用意なユーザーやシステムがあると攻撃に成功する場合もあります。 SshguardはC作られており、flex/bisonのパーサールールを足せば拡張できますがカスタム版をメンテナンスするのも面倒です。必要なルールを足してプルリクエストを送ってもマー
CMS(コンテンツ・マネジメント・システム)は何年も前から多数存在するが、継続的な開発が行われてきたものは大抵機能が増加し、システム全体が大きく複雑なものになってきている。もちろん多機能が悪い訳ではないが全体のニーズを満たしているかと言えばそうではない。みんな軽量で、自分のニーズを満たしてくれるシステムが欲しいのだ。 すっきりしたデザインのCMS 最近ではブログエンジンがCMSとなるケースが増えているが、それでは自分のニーズに合っていないという場合もあるだろう。そこで原点回帰したのがpluckだ。 今回紹介するオープンソース・ソフトウェアはpluck、PHPのCMSだ。 pluckはデータベースを使わずに利用できるCMSだ。基本機能はユーザ画面と管理画面、ページ管理機能になる。モジュールを使ってブログとフォトアルバム、コンタクトフォームが提供されている。テーマも提供されており、見た目を簡単
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
PHPは広く数多のWebサーバでインストールされ、使われている。設定ファイルは殆どそのままで使われていることが多いのではないだろうか。だが4.2より前のバージョンではregister_globalsのデフォルトがOnになっていたなど、利便性とセキュアであることとの関係で潜在的な問題はあるかも知れない。 php.iniのセキュリティチェックに 見直すのはPHPの設定ファイルであるphp.iniだが、多数の設定があるのでぱっと見では設定の善し悪しが分かりづらいかも知れない。そこで使うのがPHP Security Consortiumだ。 今回紹介するオープンソース・ソフトウェアはPHP Security Consortium、PHPのセキュリティ設定を見直すソフトウェアだ。 PHP Security ConsortiumはPHPで作られたソフトウェアで、phpinfo()から得られる情報を使っ
使える21のPHPコードスニペットが紹介されています。 例えば、以下のような便利なスニペットが紹介されています。 ・ランダム文字列作成 ・メールアドレスのエンコード ・ディレクトリ内のコンテンツ表示 ・ディレクトリ削除 ・JSONデータのデコード ・XMLデータのパース ・ファイルダウンロードヘッダー表示 ・タグクラウド作成 ・Ajaxリクエストかどうか判別 但し、掲載されているメールアドレスの正規表現チェックのコードは注意が必要です(参考)。 コードは以下エントリにて掲載されています。 21 Really Useful & Handy PHP Code Snippets 関連エントリ WEBデザイナーな方向けのPHP入門によさそうな、CSS内でPHPで使うサンプル PHPからTwitterに投稿するサンプルコード&サンプルアプリ
アクセス解析として有名な物と言えばGoogleのAnalytics、ビジネス向けであればSiteCatalystになるだろう。だが予算をそこまで出せず、とはいえ外部のサービスは使いがたいという場面はよくある。そんな中、できるだけ見栄えのいいアクセス解析システムを願うならオープンソースを使わざるを得ない。 インストールウィザードでスクリプトの出力までできる 通常のWebサイトはもちろん、WordPressやMediaWikiと親和性の高いアクセス解析としてOpen Web Analyticsを紹介しよう。 今回紹介するオープンソース・ソフトウェアはOpen Web Analytics。高機能なアクセス解析システムだ。 Open Web AnalyticsはPHP+MySQLによるアクセス解析システムだ。JavaScriptタグを使ってアクセス解析を行うのが基本だが、PHPのシステムであればフ
「追記とか」にコメントの返答や追記をしてますので合わせてどうぞ。 かれこれ3年くらいPHPをやっているので、せっかくなので10個の便利な関数を並べてみました。 作業効率がかなりアップするので、これからPHPをやってみようかなぁって思う方は知っておくと便利だと思います。 変数、配列の内容をキレイに表示する関数「d」 変数や配列の内容をHTML構文でキレイに表示してくれます。 しかも、var_dumpと書くとタイピングが大変なので「d($hoge)」として簡単に記述。 これだけでも作業効率8倍 function d() { echo '<pre style="background:#fff;color:#333;border:1px solid #ccc;margin:2px;padding:4px;font-family:monospace;font-size:12px">'; foreac
思い立ったが吉日ということで。botと言っても自分のアカウントで投下しておりますが、問題は自分の生の発言とbot発言の区別がつかないことだったりする!ちょっと待て!!! さて、全くやったことないPHPでやってみた。 まずPHPとApacheのインストールから。 All about PHPインストール 自宅サーバーのためのPHPセットアップ Apacheのインストール VistaでApacheのインストールに失敗&解決記 この辺を参考にしてやりました。特にVistaだったせいでなかなかうまくいかなかったので最後のはありがたかったです。Apacheが動くまでに2時間か3時間かかかったかなぁ。 twitterに投稿するための骨組は、 Twitter API PHPでTwitterに投稿 の二つを参考に。これは結構すんなりいった。というかほとんどコピペ。 最初の一言はこれ
PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); なので、引数をそのまま返す関数を作ってやると <?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK! 便利だなー おまけ 配列アクセス用のも作っておくと便利 <?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n"; おまけ2 無名関数をそのまま呼ぶときにも使える。 <
企業におけるナレッジマネジメントはとても難しい。少人数であれば暗黙知も良いだろうが、人数が増えれば徐々に知識のずれが生じてくる。それを補うにはアナログツール、メール、井戸端会議、Webベースのシステムなど様々に存在する。 説明書きにツールチップが表示される 最終的には人と人の付き合いになるだろうが、それでも知識の定着を促すためのシステムが必要だ。その役に立つのが68KBだ。 今回紹介するオープンソース・ソフトウェアは68KB、Webベースのナレッジマネジメントシステムだ。 68KBは主に3つの機能がある。一つはドキュメント管理機能だ。Webベースの記述のほか、添付ファイルを付けることもできる。これによってある話題に対する説明をする。 管理画面 もう一つはキーワードだ。いわゆる用語集で、各単語ごとに説明を行う。用語集はドキュメント表示にも連携しており、該当する用語があればリンクが表示され、ツ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く