タグ

ブックマーク / gihyo.jp (23)

  • 第41回 PHP 5.3.4におけるセキュリティ上重要な仕様変更 | gihyo.jp

    PHP 5.3.4のリリースは2010年12月にリリースされました。このリリースにはセキュリティ上重要な変更が追加されています。 Paths with NULL in them (foo\0bar.txt) are now considered as invalid. (Rasmus) パスに“⁠foo\0bar.txt⁠”などのようにNULLが含まれる場合は無効として処理される、とPHP 5.3.4のリリースノートには記載されています。PHP開発者の間でもあまり大きなニュースとして取り上げられていないので、この仕様変更をご存知でない方も多いと思います。2011年4月現在でもこの仕様変更はマニュアルには記載されていません。しかし、この修正はセキュリティ上非常に重要な意味を持っているので解説します。 仕様変更の必要性 PHP体はC言語で記述されているため、ファイルを開く場合、最終的にはC言

    第41回 PHP 5.3.4におけるセキュリティ上重要な仕様変更 | gihyo.jp
  • 第14回 [キャリアアップ編⑤]varnishを使おう④─実践varnish | gihyo.jp

    大規模コンテンツ配信の仕組みとしてvarnishをテーマに連載してまいりましたが、今回は、実際にサービスでも利用しているxcir氏(いわなちゃん)にご協力いただき、連載におけるvarnishシリーズをまとめたいと思います。それではxcirさんよろしくお願いします。 はじめまして、xcir(いわなちゃん)といいます。今回は、varnish実践編ということで、運用に役立つテクニックなどをテーマにご紹介できればと思います。なお、今回の内容につきましては特記がない限りCentOS上で動かしたvarnish2.1.4での記載となります。 VCLについて varnishは複雑な設定をしなくても高速に動きますが、決め細やかな制御を行う際は、VCL(varnish configuration Language)の設定が必要です。VCLは一般的な設定ファイルとは違い、まるで言語のように記述して動作します。

    第14回 [キャリアアップ編⑤]varnishを使おう④─実践varnish | gihyo.jp
  • 連載:目指せ!iPhoneアプリ開発エキスパート|gihyo.jp … 技術評論社

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    連載:目指せ!iPhoneアプリ開発エキスパート|gihyo.jp … 技術評論社
  • 第11回 コピー&ペーストとドラッグ&ドロップ | gihyo.jp

    ビットマップ/ファイルリスト/テキスト/URLの4つ(以下、標準フォーマット)は、AIRアプリケーションとその他のアプリケーション間でやりとりが可能です。ActionScriptのデータ型とOSのクリップボード形式は自動で相互変換されます。シリアライズされたオブジェクトはAIRアプリケーション間でのみ有効で、例えばActionScriptの基オブジェクトをやりとりしたい場合などに使います。シリアライズ/デシリアライズはAIR側で自動的に行われますが、正しく処理できないデータは無効になります。オブジェクトの参照は、同一AIRアプリケーション内でのみ利用できます。 Clipboardオブジェクトには、複数の形式のデータを一度に設定することができます。これは別のアプリケーションから少しでもデータを利用しやすくするためです。例えばビットマップを渡したい場合でも、それを受け取ったアプリケーションが

    第11回 コピー&ペーストとドラッグ&ドロップ | gihyo.jp
  • 第7回 ファイルシステムAPI(その1) | gihyo.jp

    ファイルやディレクトリへのアクセス ブラウザ上で実行されるウェブアプリケーションがローカルファイルへのアクセスを制限されているのに対し、AIRアプリケーションは比較的自由にローカルファイルへアクセスできます。しかもプラットフォーム間の差異はAIR側で吸収してくれるので、デベロッパーが意識してコードを書き分ける必要もありません。 例として、デスクトップディレクトリにアクセスしてみましょう。 <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="test()"> <mx:Script> <![CDATA[ import flash.filesystem.File;

    第7回 ファイルシステムAPI(その1) | gihyo.jp
  • 第1回 memcachedの起動オプションを把握しよう | gihyo.jp

    1.4系で新しく追加された主な機能しては バイナリプロトコルの導入 マルチスレッドの標準化 統計の強化 などが上げられます。この1.4系の機能の詳細については前坂徹氏の連載「memcached 1.4の到来」が参考となります。ここではバージョン1.2.5と最新の1.4.5の起動オプションを比較しながら、新しく追加された機能や実際の運用で用いられる起動オプションについて説明します。 1.2系と1.4系の起動オプションの違い まず、memcachedの起動オプションの一覧(ヘルプ)を確認しましょう。memcachedのヘルプを出力するには、「⁠-h」オプションを使います。 $ memcached -h memcached 1.x.x -p <num> TCP port number to listen on (default: 11211) -U <num> UDP port number t

    第1回 memcachedの起動オプションを把握しよう | gihyo.jp
  • 第1回 RDBMSとNoSQLデータベース | gihyo.jp

    はじめに NoSQL(Not Only SQL)という言葉が注目を集めています。これは「RDBMSが得意なことはRDBMSで、不得意なところにはRDBMSにこだわらず、用途に合ったデータストアを使いましょう』という考え方です。最近では、いわゆるNoSQLデータベース (⁠key-valueストアや各種データベース⁠)⁠ が次々と登場してきています。 そこで今回から数回に渡り、それぞれのNoSQLデータベースの特徴や具体的な使い方について紹介していきます。 RDBMSの強みとは そもそも、MySQLやPostgreSQLなどのRDBMSの弱みを補うため、様々なNoSQLデータベースが登場してきたわけですが、RDBMSにはたくさんの強みがあることも忘れてはいけません。 RDBMSの強み データの一貫性 (⁠トランザクション) 更新時のコストが少ない(JOINが前提でテーブルが正規化されている)

    第1回 RDBMSとNoSQLデータベース | gihyo.jp
  • 第1回 NoSQL、そしてCassandraとは | gihyo.jp

    NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが、それぞれのNoSQLミドルウェアで差別化部分に関してはかなり詳細に説明がされていますので、ぜひそちらを参照してみてください。 高速に動作する リレーションモデルではないデータモデル スケールアウト型アーキテクチャ コモディティサーバによって構築される スキーマフリー SPOF(単一故障点)を持たない 自動的に複数台へレプリケーションする イベンチュアルコンシステンシまたは一貫性の選択が可能 SQLのような強力なクエリ言語を持たず、シンプルな問い合わせしかできない Cassandraとは何か NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが、オープンソースの世界でもいろいろなものが出てきています。その中でも最近特に注目を集めているのが、Apach

    第1回 NoSQL、そしてCassandraとは | gihyo.jp
  • #23 えとらぼ 衛藤バタラ、廣瀬正明、大沢和宏、松野徳大 | gihyo.jp

    2006年4月以来、4年間に渡った連載、今回で最終回となりました。トリを飾るのは、写真ストレージサービス「Ficia(フィシア)」を開発しているえとらぼ(⁠株⁠)代表取締役の衛藤バタラさんと開発部の廣瀬正明さん、大沢和宏さん、松野徳大さんです。少数精鋭を地でいく面々に、会社の生い立ちからインタビューが始まりました。 撮影:武田康宏 新たに会社を始めた理由 弾:連載でいろんな方をインタビューしてきたんですけど、バタラさんはたぶん僕と一番境遇が近いんですよ。上場させた会社でCTOをやって[1]⁠、そこを辞めて。その後は、僕は1人で好きなようにやってますけど、バタラさんはまた会社を始めましたよね。その理由は? 衛藤バタラ(以下、バ⁠)⁠:会社というより、サービスを作りたかったんです。世の中にあるいろいろな写真ストレージサービスを見ていると、こうだったらいいのにと思うことがあって、それを形にす

    #23 えとらぼ 衛藤バタラ、廣瀬正明、大沢和宏、松野徳大 | gihyo.jp
  • 第4回 memcachedのCASとmixiでの運用動向 | gihyo.jp

    今まで簡単に触れてきたmemcachedのCAS(Compare and Swap)機能ですが、今回はその具体的な使用例や、プロトコルの違いによる特徴を紹介します。また、mixiでの今後のmemcached運用動向を紹介します。 CASの概要 memcachedには特定のデータに対してアトミックな更新を試みる機能が存在します。この機能の仕組みは単純で、クライアントは特定のコマンド(テキストプロトコルの場合は“⁠gets⁠”⁠)を実行することにより、サーバから特定のレコードとその状態を表すユニークな識別子を与えられます。 この識別子はレコードが何らかの手段によって更新されると変更され、クライアントが保持している識別子とは別の値になります。したがって、クライアントは与えられた識別子を更新命令と一緒に送信することで、サーバはレコードをアトミックに更新できるかを確認することができます。もし識別子が

    第4回 memcachedのCASとmixiでの運用動向 | gihyo.jp
  • 第2回 バイナリプロトコルの扱い方 | gihyo.jp

    株式会社ミクシィの前坂です。第1回でmemcached 1.4の簡単な紹介をしました。今回は新しく正式導入されたバイナリプロトコルの扱い方をご紹介いたします。 バイナリプロトコルの扱い バイナリプロトコルを扱うには、アプリケーションのプログラミング言語に合ったバイナリプロトコル対応のクライアントライブラリが必要です。バイナリプロトコルは最近導入されたこともあり、ネイティブ対応していると報告されているクライアントライブラリはC言語のlibmemcachedとJavaのspymemcachedだけです(2009年8月時点⁠)⁠。ただし、世の中にはlibmemcachedをwrapした、さまざまの言語で記述されたクライアントライブラリがいくつかあり、それらを使ってバイナリプロトコルを扱うことが可能です。 今回の記事ではそれらのクライアントも含めて, C、JavaPythonPHPでのデモコー

    第2回 バイナリプロトコルの扱い方 | gihyo.jp
  • 第1回 memcached 1.4、基本の基本 | gihyo.jp

    今回は、1.4になってアップデートされた新機能を中心に紹介します。 memcachedとは? memcachedとは、主にデータベースへの負荷を下げ、かつWebアプリケーションのスケーラビリティをコストパフォーマンス良く向上させる高性能な分散キャッシュサーバです。memcachedの基や概要に関しては、以前ミクシィ運用グループの長野と執筆した「memcachedを知り尽くす」をご覧ください。 memcached 1.4の特徴 1.4、5つの特徴 memcached 1.4の大きなニュースの1つはバイナリプロトコルの正式導入です。また、他にも色々と嬉しい機能や改修が施されています。詳しくは1.4のリリースノートに記述されていますが、要約すると以下の5点が上げられます。 バイナリプロトコルの正式導入 パフォーマンス向上 統計システムの強化 報告されたバグの修正 テストの強化 入手先 memc

    第1回 memcached 1.4、基本の基本 | gihyo.jp
  • 第4回 Redmineを活用する上でのTIPS、プラグインの紹介 | gihyo.jp

    前回の連載では、タイトルに"TIPS"を含めていながら、具体的なTIPSを紹介することが出来ていませんでしたので、今回はRedmineを活用する上でのTIPSや注意点と、後半はRedmineのプラグインについて紹介します。 Redmineを活用する上でのTIPSと注意点 カスタムクエリの活用 不具合や課題の一覧を確認する上で、Redmineの「問題」一覧画面を眺めることは多いかと思います。 この一覧画面はデフォルトでは全ての「問題」が表示されるため、絞込みを行うフィルタ機能が付いていますが、日々入力するような特定の絞込み条件については、事前に登録しておくことで、クリック1つで絞込みを行うことが出来る「カスタムクエリ機能」が便利です。 利用例として、筆者らは「一週間以内に更新した問題一覧」や「担当者未割当の問題一覧⁠」⁠、「⁠優先度高めの問題一覧」などをカスタムクエリとして予め登録しておき、

    第4回 Redmineを活用する上でのTIPS、プラグインの紹介 | gihyo.jp
  • 第1回 zshで広がる世界 | gihyo.jp

    zshはシェルである。シェルはもちろんキーボード入力されたコマンド行を解釈し、必要なコマンドを必要な引数とともに起動することを主な仕事とするソフトウェアである。単なるシェルなのだが、zshには他を圧到する比類なき機能がある。その一端を印象づける一つの例に、zshで実装されたテトリスがある(図1⁠)⁠。 もちろんこれは、お遊び機能の例で実際の日常作業をこれで進めるわけではないが、潜在的に備えている機能がどれほどのものかが分かる好例である。 zshは、sh(Bourne Shell)をベースとし、ksh、csh(tcsh⁠)⁠、bashの優れた機能をアイデアとして取り込み、なおかつ作業効率を高める独自の機能を登載したまさに至高のシェルである。しかしながら超高機能・多機能であるがゆえに全容を掴むのが難しい。付属の英文マニュアルはしっかりしているものの、簡潔な仕様記述がされているのみなので具体的な

    第1回 zshで広がる世界 | gihyo.jp
  • 第16回 知っておきたいApacheの基礎知識 その12 | gihyo.jp

    今回は、mod_cacheを利用したApacheのパフォーマンスチューニングについて解説します。 mod_cache Webサーバをチューニングしていると確実にやらなければならないのがパフォーマンスチューニングです。当然、同じWebサーバといえど用途はさまざまですね。たとえば、静的なコンテンツのみを配信しているような場合ですと、プロセス数やスレッド数のチューニングになることでしょう。 しかしその他、動的にコンテンツを返しているような場合もあると思います。そのようなときは、キャッシュをさせることで大幅なパフォーマンス向上をはかることができるのです。 Apache2では、標準でキャッシュさせることのできるモジュールが同梱されています。今回はapacheをつかって簡単にキャッシュをすることのできる、mod_cacheを紹介していきたいと思います。 モジュールを組み込む それではApacheのモジ

    第16回 知っておきたいApacheの基礎知識 その12 | gihyo.jp
  • 第1回 「モダンPerl」ってなんだろう? | gihyo.jp

    「モダンPerl」という言葉の流行 先日、国内有数のPerlハッカーである牧大輔氏が『モダンPerl入門』という書籍を刊行しました。 日Perlユーザーのハブサイトを目指しているperl-users.jpでも「モダンなPerl入門」と題して「古来から親しまれているPerl入門とはひと味違う、今風のPerl入門テキスト」を作ろうという動きがあります。 海の向こうでは、Perl 6の言語仕様の策定にたずさわっているクロマティック(chromatic)氏が「Modern Perl Books」というウェブサイトを開設して、「⁠モダンPerl」についての考察を始めました。氏はその名もModern::Perlというモジュール[1]を公開して「モダンPerl」の啓蒙に努めています。 個人の主義主張に過ぎないのでしょうか? でも、この「モダンPerl」とはいったい何なのでしょうか。 字面から「今風の

    第1回 「モダンPerl」ってなんだろう? | gihyo.jp
  • 第1回 PCサイトと携帯サイトの違いを知る | gihyo.jp

    携帯サイト開発で考慮すること PCサイトの作成経験者が初めて携帯サイトを作るときには、どのような所に違いがあるのかをまず認識しなければなりません。PCサイトの場合ブラウザの数も限られており、またそれぞれの動作も大きくは異なりませんが、携帯サイトではキャリアはもちろん機種ごとにも動きが変わってきてしまいます。そして携帯サイトはPCと違い、ブラウザのバージョンアップができません。そのため広く使ってもらうサイトを作るには古い機種にも対応しなければならず、多種多様な仕様の端末を想定して開発をしていく必要があります。そのため開発の前にどのような点に気をつけなければならないかをきちんと認識しておく必要があります。 携帯サイトの開発において、最初のポイントは「携帯端末で画面を正しく表示すること」です。PCサイトと同じように携帯サイトを作成すると、画像が表示されなかったり、画面レイアウトが崩れたりといった

    第1回 PCサイトと携帯サイトの違いを知る | gihyo.jp
  • 第20回 文字エンコーディングとセキュリティ(2) | gihyo.jp

    前回に引き続き、今回も文字エンコーディングとセキュリティをテーマに解説します。前回は文字エンコーディングを利用した攻撃で、JavaScriptインジェクションやSQLインジェクションなどが可能であることを紹介しました。今回はなぜ、文字エンコーディングを利用して攻撃できるのか、簡単に紹介します。 文字エンコーディングを利用した攻撃の原理 文字エンコーディングを利用した攻撃には3種類の方法があります。 不正な文字エンコーディングを利用する方法 文字エンコーディングを誤認識させる(誤認識を利用する)方法 文字エンコーディングのエスケープ方式を利用する方法 この連載は攻撃方法を詳しく解説する事が目的ではありません。具体的なの攻撃方法の解説はできる限り控え、なぜこの3つ手法が攻撃に利用できるのか解説します。 前回も触れましたが、パス遷移攻撃には文字エンコーディングを利用した攻撃方法もあります。 文字

    第20回 文字エンコーディングとセキュリティ(2) | gihyo.jp
  • 第14回 減らないSQLインジェクション脆弱性 | gihyo.jp

    SQLインジェクション脆弱性を狙った大規模な攻撃が繰り返し行われ、数万から数十万ページが改竄される事件が何度も発生しています。SQLインジェクションは簡単に対策できる脆弱性ですが、未対策のアプリケーションが多く利用されています。外部からの脆弱性の検出も容易であるため、現在でもWebアプリケーション脆弱性の代表的存在です。 SQLインジェクション脆弱性が無くならない理由には以下のようなものが考えられます。 過去のコードやアプリケーションの再利用 基的なセキュリティ知識不足 セキュアコーディングプラクティスの未実施 コード監査の不在 SQLインジェクション脆弱性の発見だけを目的にコード監査を行うことはあまりありませんが、SQLインジェクション脆弱性のコード監査は比較的簡単です。MySQLモジュールまたはPostgreSQLモジュールを利用している場合を例に紹介します。 題に入る前にSQL

    第14回 減らないSQLインジェクション脆弱性 | gihyo.jp
  • 第13回 最後のPHP4 ── PHP4.4.9リリース | gihyo.jp

    PHP4の最後のリリースとなるPHP 4.4.9が8月7日にリリースされました。筆者は「PHP4のメンテナンス状態はよくないので、可能な方は早くPHP5に移行すべき」と啓蒙してきました。しかし、大規模なシステムの場合、PHP4からPHP5への移行は簡単ではありません。筆者もgihyo.jpに比較的詳細な移行の注意点を解説させていただいています。 特集:残り一年! PHP4からPHP5への移行(2007年8月) 現在ではオンラインマニュアルの移行ガイドもかなり充実しています。 PHP: PHP 4 から PHP 5 への移行 ビジネスユーザの場合、サービスを安定的に提供するために互換性のチェックやコードの修正が不可欠です。移行作業をしっかり行うにはかなりのコストが必要です。さらにPHP5はPHP4に比べバージョンアップが頻繁です。バージョンアップが頻繁であることはコストアップに直接つながりま

    第13回 最後のPHP4 ── PHP4.4.9リリース | gihyo.jp