タグ

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

  • YAPC::Asia Tokyo 2012, 1日目レポート[更新終了] | gihyo.jp

    27日から29日までの3日間、東京大学伊藤国際学術研究センターにて「YAPC::Asia Tokyo 2012」が開催されます。昨日は前夜祭で、日は1日目ということになります。ここでは、1日目の模様を随時レポートしていきます。 ※すべてのセッションをレポートするわけではないことにご注意ください。 受付が伊藤謝恩ホール前に移動しています。もうすぐオープニングです。 941さん「オープニング⁠」⁠ 櫛井さんがオープニングの挨拶を行いました。今年は参加者数が過去最多となり、発表の応募も数多くあったと話します。 また今年も遠方からの参加者制度、個人スポンサーの募集(120名180口の応募があったとのこと)が行われました。今年の新しい試みとしては、ぼっちとオサラバ!できる「ランチ交流企画⁠」⁠、「⁠LT-thon⁠」⁠、物販ができないため「立ち読みコーナー」などがあると紹介しました。 そしてYAP

    YAPC::Asia Tokyo 2012, 1日目レポート[更新終了] | gihyo.jp
  • 第45回 入力バリデーションはセキュリティ対策 | gihyo.jp

    「入力バリデーションはセキュリティ対策である」は世界の常識です。少なくとも大多数の世界のセキュリティ専門家は「入力バリデーションはセキュリティ対策」は常識だと考えています。 もちろん入力バリデーション対策がすべてであるわけではなく、ほかのセキュリティ対策も重要ですが、入力バリデーションが最も重要な対策の1つである、と考えている人は沢山います。 入力のバリデーションはすべてのプログラムに必須の保護機能です。一部に「入力バリデーションはセキュリティ対策ではない」とする声もあるようですが、入力バリデーションは間違いなくセキュリティ対策です。入力バリデーションはセキュリティ対策ではない、とする考え方は、混乱を招くだけです。 入力バリデーションをセキュリティ対策としているのは筆者のみではありません。世界的に利用されているセキュリティ標準でも、入力バリデーションを非常に有効なセキュリティ対策としてとら

    第45回 入力バリデーションはセキュリティ対策 | gihyo.jp
    hasegawayosuke
    hasegawayosuke 2011/12/19
    「ベストプライス」まで読んだ。リロードしたら「プクティス」になってた。
  • LL Planetsで実現した無線LANインターネットの開放 | gihyo.jp

    大盛況ののちに幕を閉じた今年のLL Planetsでは、新しい試みとして無線LANによるインターネット接続を観客へ提供しました。 LLPLanetsのネットワーク構築にあたり、協賛ベンダ様よりネットワーク機材や回線を提供していただけたこと、ネットワークスタッフによる入念な計画・準備、そして番運用中にきめ細かな調整を行ったことにより、観客へ安定した無線LAN接続を提供することができました。 稿ではLL Planetsのネットワーク構築経験と、無線のノウハウを共有したいと思います。 2010年LL Tigerでの課題 2010年に開催されたLL Tigerでは、機材や準備の都合上、観客へのネット接続は提供することができず、観客がネット接続するには各自で回線を準備する必要がありました。そのため、近年流行しているポータブル無線APが予想以上に多く持ち込まれてしまい、最大で150局以上の無線AP

    LL Planetsで実現した無線LANインターネットの開放 | gihyo.jp
  • 第42回 PostgreSQL 9.0に見るSQLインジェクション対策 | gihyo.jp

    PostgrSQL 9.0から追加されたエスケープ関数から、SQLインジェクション対策を再度解説してみたいと思います。 SQLインジェクション対策の4原則 基的にはSQLインジェクション対策として以下の原則を守っていれば、SQLインジェクションに脆弱なアプリケーションを作ることはありません。 すべてのパラメータを文字列としてエスケープする すべてのパラメータをプリペアードクエリのパラメータとして処理する 文字エンコーディングの設定をAPIで行う パラメータとして処理できない文字列はバリデーションを行う 原則1と原則2は重複して適用する必要はありません。どちらかを行います。文字エンコーディングの設定やプリペアードクエリのエミュレーション・抽象化ライブラリのバグ等でSQLインジェクションが可能になる場合もありますが、通常であればこの原則を守っている限りSQLインジェクション脆弱性を作ることは

    第42回 PostgreSQL 9.0に見るSQLインジェクション対策 | gihyo.jp
    hasegawayosuke
    hasegawayosuke 2011/05/19
    いつもどおりの大垣節。徳丸さんのツッコミが待たれる…。
  • PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp

    2010年9月24日・25日に開催された「PHPカンファレンス2010」にあわせて、PHP開発者のRasmus Lerdorf氏が来日されました。日を訪れるのは2度目という氏に、PHPの現状とその根底にある思想についてお話を聞きました。 現在の仕事について 大垣:昨年 Yahoo! Inc.を退職されましたね。現在はどのような仕事をされているのでしょうか? Rasmus:WePayという起業したばかり小さな会社にいます。WePayはカリフォルニアにある、グループで支払いを行う処理を行うベンチャー会社です。 大垣:グループで支払いを行う、というのは、どういうことですか? Rasmus:グループで何かを買いたいときに、グループとしてお金を管理したいですよね。例えば、大学で学生が集まってプレゼントを買いたいという場合があります。どんなものでも構わないですが、10人が集まって共同でオンラインショ

    PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp
  • 第14回 プロトタイプと継承 | gihyo.jp

    こんにちは、太田です。前回は総集編的な内容でしたが、今回は一転して基礎編に戻ります。JavaScriptにおける継承の方法とその仕組みについて、今回から数回に分けて基礎的な部分からきっちり押さえていきたいと思います。 JavaScriptとオブジェクト指向 JavaScriptはプロトタイプベースのオブジェクト指向プログラミング言語と言われています。new演算子を用いることで、関数がコンストラクタとして働き、そのコンストラクタが持つプロトタイプオブジェクトのメソッド(プロパティ)を継承した新しいオブジェクトを作ることができます。 なお、オブジェクト指向という概念については今回は触れません。オブジェクト指向という概念を掴みきれていない、自信がないという方は、JavaScriptのprototypeをしっかりと理解してから改めてその概念を学んでみるとすんなりと理解できるかもしれません。さらに、

    第14回 プロトタイプと継承 | gihyo.jp
  • 第2回 Jettyのインストール | gihyo.jp

    今回から、Jettyを使ってWebSocketの実装例を説明していきます。 なお、この連載では、開発に以下の環境を使用します。 Mac OS X 10.5 JavaVM 1.6 Eclipse 3.5.1[1] EclipseはNLpackで日語化[2]しています。また、Eclipseには、m2eclipseプラグイン[3]がインストールされています。今回の内容は、EclipseとMavenに慣れている方を想定していますが、必要だと思われるところは掘り下げて説明します。そして最終的には、サーバ側はServletを作成しデプロイするのではなく、デスクトップアプリケーションとして動作するようにしたいと思います[4]⁠。 Jettyについて 今回使用するJettyは、Javaで作成されたウェブサーバです。 以前は、codehausで公開されていましたが、最新のJetty7以降はEclipse

    第2回 Jettyのインストール | gihyo.jp
  • 第1回 WebSocket登場までの歴史 | gihyo.jp

    はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「⁠WebSockets⁠」⁠、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S

    第1回 WebSocket登場までの歴史 | gihyo.jp
  • 第8回 実践DOMスクリプティング#1:HTMLとテキストの操作 | gihyo.jp

    こんにちは、太田です。前々回、前回でDOMの基礎を簡単に解説しました。今回からは、DOMを使った実用的なスクリプトを解説していきます。特に今回はHTMLの操作、テキストの操作にフォーカスを当てていくつかのサンプルコードを解説していきます。 HTML操作の基 JavaScriptによってHTMLを書き出したり、一部を書き換えたり、削除したりといった方法は実は様々な方法が用意されています。目的に合わせて適切な方法を選ばないと非効率だったり、最悪クロスサイトスクリプティングなどの問題を抱えてしまう危険もあります。 document.writeと同期読み込み JavaScriptHTMLを書き出すというと、最初に学ぶのはこのdocument.writeかもしれません。いわゆるprint文のようにシンプルなAPIなので、入門書の最初のサンプルなどで扱われることも多いようです。しかし、docume

    第8回 実践DOMスクリプティング#1:HTMLとテキストの操作 | gihyo.jp
  • 酷い英語をもっとお願いします | gihyo.jp

    メーリングリストでもっとたくさん酷い英語を見かけたい。ネイティブじゃない人が英語が上手くなくてと謝る場面がもっと減ってくれたらとも思う。母語ではない第二、第三、あるいは第四の言語を、たとえ熟達していない状態でも、とにかく使ってコミュケーションを図ろうとするのは全く恥じるようなことなんかじゃない。もし、外国語だというのを理由に不安や気後れを感じて重要な貢献を果たさなかったり、FLOSSツールへ貢献する方法やその使い方について質問を控えたりしたのなら、そういうことが恥になるんだ。 訳注 FLOSSは Free/Libre and Open Source Software の略。フリーソフトウェアとオープンソースソフトウェアとをまとめた言葉 オープンソースの美点の一つは多国籍ということ。それも“⁠るつぼ⁠”と見なしうる物事のうち最も真に“⁠るつぼ⁠”らしい多国籍なんだ。数百万もの人たちが英語で運

    酷い英語をもっとお願いします | gihyo.jp
  • #23 えとらぼ 衛藤バタラ、廣瀬正明、大沢和宏、松野徳大 | gihyo.jp

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

    #23 えとらぼ 衛藤バタラ、廣瀬正明、大沢和宏、松野徳大 | gihyo.jp
  • 『Software Design』の10年間がこの1冊に──『Software Design総集編【2000~2009】』発売決定!:新刊ピックアップ

    Software Designの創刊は,1990年の秋にさかのぼります。当時は,コンピューティングに対する興味が,弊誌の前身とされる『プロセッサ』に代表されるようなハードウェアに近い部分から,徐々にソフトウェアだけの情報に移ってきた時期でした。言い換えると「コンピュータを使う=プログラミングする」という図式の時代から,徐々にアプリケーションユーザが広がりつつあった頃で,ほんの一部の愛好家にしか読まれていなかったコンピュータ雑誌にも,バリエーションが現れはじめた時代だと言えます。 そんな中,弊誌は,「⁠ワンランク上のコンピューティングを目指す人」をターゲットに,それまで英語だったり難解なマニュアルや堅苦しい研究書にしか載っていなかった情報を,わかりやすい形でお見せする,というコンセプトで発刊されたのです。 総ページ数2万4,000ページ超! Software Design創刊以来初となる総集

    『Software Design』の10年間がこの1冊に──『Software Design総集編【2000~2009】』発売決定!:新刊ピックアップ
  • 2010年のJavaScript:「これまで」と「これから」 | gihyo.jp

    2010年のJavaScriptと題しまして、JavaScript周辺の「これまで」と「これから」についてまとめてみたいと思います。 2009年までのJavaScript JavaScriptは各ブラウザベンダなどが個別に実装するという特殊性から、ブラウザ(実装)ごとの非互換性の問題に悩まされ続けてきた言語です。まず、そのJavaScript歴史を簡単に振り返ってみます。 ECMA-262 3rd editionとスピードコンテスト JavaScriptNetscape社によってLiveScriptという名前で誕生し、その後ECMAScriptとして標準化が進みました。1999年12月にECMA-262 3rd editionが策定されてから、Internet ExplorerのJScript、MozillaのSpiderMonkey(TraceMonkey⁠)⁠、SafariのJav

    2010年のJavaScript:「これまで」と「これから」 | gihyo.jp
  • 第10回 文字コードが引き起こす表示上の問題点[後編] | gihyo.jp

    前回は、文字コードの引き起こす問題がソフトウェアの処理上だけでなく、人間に対する視覚的な効果という点でも強く影響を与え、攻撃者にとっての強力な道具となることがある、という点について説明しました。今回も前回に引き続き、そのような文字コードが引き起こす視覚的な問題点について説明します。 拡張子の偽装 Unicodeを利用したWindowsにおける拡張子の偽装は、文字コードを利用した視覚的な攻撃の中でも特にインパクトの大きいものだと思います。 Unicodeには多数の文字に加え、さまざまな制御も収録されています。そのような制御コードのうち、U+202E「RIGHT-TO-LEFT OVERRIDE」(⁠RLO)と呼ばれる文字をファイル名に含めることで、見かけ上の拡張子を簡単に偽装することができます。 たとえば、copy-txt.exeという名前の実行可能ファイルがあったとします。 図1 copy

    第10回 文字コードが引き起こす表示上の問題点[後編] | gihyo.jp
  • 第1回 JSDeferredによる簡単非同期処理 | gihyo.jp

    どうもはじめまして、株式会社はてなのid:cho45です。これから数回に渡り、拙作のJavaScriptのライブラリであるJSDeferredの紹介と、それに関係するJavaScriptにおける非同期の技術に関して解説させていただきます。 JavaSciptにおける非同期処理 非同期処理とは まずは確認程度に、非同期処理がどういうものかを解説しておきます。先に乱暴にまとめてしまうと、以下の事柄が大切なところです。 非同期とは「あとで」という意味 同期処理はコードの見た目順に実行される/非同期ではそうならない JavaScript の非同期処理は絶対に同期処理にすることができない JavaScriptにおける非同期処理をいくつか例に出すと、以下のようなものが挙げられます。 リスト1 // XMLHttpRequest の例 var req = new XMLHttpRequest(); re

    第1回 JSDeferredによる簡単非同期処理 | gihyo.jp
  • 第9回 文字コードが引き起こす表示上の問題点[前編] | gihyo.jp

    文字コードが引き起こす問題点は、これまで説明したような比較の一致・不一致といったソフトウェアの処理上のものだけでなく、人間に対する視覚的な効果という点でも強く影響を与え、攻撃者にとっての強力な道具となることがあります。 今回および次回で、そのような文字コードが引き起こす視覚的な問題点を紹介します。 視覚的に似た文字 見かけのよく似た文字は、フィッシングなどによく利用されます。典型的な例としては、アルファベット小文字のl(エル)と数字の1などがあります。たとえば、http://bank1.example.jp/ というURLのオンラインバンクがあったとすると、攻撃者は http://bankl.example.jp/ というURLを使ってフィッシングを企むということは容易に想像できると思います。 もちろん、収録している文字数が増えれば増えるだけ、このように見かけのよく似た文字が存在する率も高

    第9回 文字コードが引き起こす表示上の問題点[前編] | gihyo.jp
  • 第8回 Unicodeからの多対一の変換[後編] | gihyo.jp

    前回は、WindowsにおいてWideCharToMultiByte APIを使用してUnicodeからShift_JISやISO-8859-1へ変換した場合に、WC_NO_BEST_FIT_CHARSというフラグを指定しなかった場合は「似ている文字への変換」が発生するため、セキュリティ上の問題が発生する可能性がある、という説明をしました。 今回は、実際にUnicodeから他の文字コードへの変換が、具体的に脆弱性を引き起こした例をいくつか紹介します。 電子メールの添付ファイル 電子メールの添付ファイル名には自由にUnicodeの文字が指定できますが、いくつかのメールクライアントにおいては添付ファイル名をUnicodeではなくShift_JISとして扱うために、問題が発生していました。 JVN#89344424: 複数のメールクライアントソフトにおける、添付ファイルによりメールクライアントソ

    第8回 Unicodeからの多対一の変換[後編] | gihyo.jp
  • 第7回 Unicodeからの多対一の変換[前編] | gihyo.jp

    文字コードが引き起こすセキュリティ上の問題として、もっとも興味深いもののひとつである、Unicodeから他の文字コードへの「多対一の変換」で引き起こされる問題点について、今回と次回で説明します。 ご存じのとおり、Unicodeには非常に多数の文字が収録されていますが(現在最新版のUnicode 5.1.0では100,713文字が収録されているそうです⁠)⁠、Unicodeから他の文字コードへの変換においては、互換性や可読性の維持のためか、複数のUnicodeの文字が他の文字コードでは単一の文字に変換されることがあります。 この「多対一」の変換が、開発者も想定していなかったような問題を引き起こす原因となることが多々あります。 具体的な例として、Windows上でのUnicodeからの変換について説明します。 Windows上でのUnicodeからShift_JISへの変換 Windows上で

    第7回 Unicodeからの多対一の変換[前編] | gihyo.jp
  • 第6回 先行バイトの埋め込み | gihyo.jp

    今回は、「⁠先行バイトの埋め込み」という攻撃方法について紹介します。 ご存じのとおり、ほとんどの符号化方式(文字エンコーディング)においては、ひらがなや漢字などASCII以外のほとんどの文字は、1文字が複数バイトにて構成されています。たとえば、ひらがなの「あ」は、Shift_JISにおいては0x82 0xA0という2バイト、UTF-8においては0xE3 0x81 0x82という3バイトで表現されます。 攻撃者がマルチバイト文字の先行バイト部分だけを与えることにより、来存在している後続の文字を無効にしてしまうのが、今回紹介する「先行バイトの埋め込み」という攻撃方法です。 先行バイト埋め込みの具体例 では、具体的な例を見ていきましょう。 たとえば、Shift_JISで書かれたHTMLとして、次のようなものがあったとします。 name: <input type=text value="" />

    第6回 先行バイトの埋め込み | gihyo.jp
  • 第5回 不正なバイト列の埋め込み | gihyo.jp

    今回は、「⁠不正なバイト列の埋め込み」という攻撃方法について紹介します。 文字列を入力とするソフトウェアにはさまざまなものがありますが、それらの処理系によっては、入力として与えた文字列中に、その文字コード上は不正となるようなバイト列を埋め込んでいたときに、それらのバイト列が無視されたり、想定外の文字に変換されてしまうことがあります。 たとえば、とあるソフトウェアにて (1) 処理A = 文字列中に特定の文字(あるいは文字列)が含まれていないか検査 (2) 処理B = 処理Aから受け取ったデータを処理。その際に不正なバイト列が無視あるいは別の文字に変換される という流れになっていた場合、後続の処理にて来はフィルタリングされるべき文字列が含まれてしまうことになります。 このような流れを引き起こす具体的な例をいくつか紹介します。 Mozilla Firefoxにおける0x80の無視 Mozil

    第5回 不正なバイト列の埋め込み | gihyo.jp
    hasegawayosuke
    hasegawayosuke 2009/05/22
    この話は、書けないネタも多いのでそのうちきちんと書きたいけど、修正されたらされたで書くほどの値打ちはなくなるという…。