タグ

ブックマーク / xtech.nikkei.com (20)

  • 第1回 まずは「クッキー」を理解すべし

    Webアプリケーションのぜい弱性がなかなかなくならない。メディアなどでも盛んに取り上げられているにもかかわらず,である。特に,セッション管理がからむアプリケーションのぜい弱性には,気付かないことが多い。具体的には「クロスサイト・リクエスト・フォージェリ」(CSRF),「セッション・フィクセーション」などである。これらはクロスサイト・スクリプティング,SQLインジェクションといった比較的メジャーなぜい弱性に比べて認知度が低く,対策も進んでいない。 原因の一つは,アプリケーションの開発者が原因を正しく理解していないこと。CSRFやセッション・フィクセーションについて言えば,セッション管理に使うクッキー(cookie)の動作を理解していないと対策が難しい。ところが最近の開発環境では,セッション管理の仕組みが隠ぺいされているため,必ずしもこの知識は要求されない。こうした開発者は容易にはぜい弱性に気

    第1回 まずは「クッキー」を理解すべし
  • SWOT分析

    文・石川 涼(日立総合計画研究所社会システム・イノベーショングループ研究員) SWOT分析とは、1960年代に考案された、組織のビジョンや戦略を企画立案する際に利用する現状を分析する手法の一つです。SWOTは、Strength(強み)、Weakness(弱み)、Opportunity(機会)、Threat(脅威)の頭文字を取ったものです。 さまざまな要素をS(強み)・W(弱み)・O(機会)・T(脅威)の四つに分類し、マトリクス表にまとめることにより、問題点が整理されます。その結果、解決策を見つけやすくなるという特徴があります。マトリクスに整理する過程で、関係者が意見を出し合いながら、問題意識を共有化できる点もメリットの一つです。 SWOT分析には、二つの段階があります。第一段階では、事業や組織におけるS・W・O・Tそれぞれの要素を抽出します。まずS(強み)とW(弱み)には、企業や組織の持つ

    SWOT分析
  • 誰でも即席“Androidプログラマ”に、Googleが開発ツール「App Inventor」を一般公開

    言語を知らなくても簡単にAndroidアプリが作れる――。誰でもプログラマになれる“驚愕”の開発ツールが登場した。米Google社が提供する「App Inventor」だ。早速、開発のしやすさを体験してみた。 米Google社は2010年12月16日、Androidアプリを開発するためのツール「App Inventor」のベータ版を一般公開した。同年7月から登録者のみに提供していたものだ。ツールおよびWebサービスJavaアプリの3つの組み合わせで実現している。 App Inventorの特徴は、プログラムをコーディングしなくても、Androidスマートフォンで動作するアプリが即席に作れること。パズルを組み合わせる感覚でプログラムを作成できる(図1)。Javaを知らない人でも、Androidスマートフォンを持っていれば、そのまま個人用のアプリが即製可能だ。

    誰でも即席“Androidプログラマ”に、Googleが開発ツール「App Inventor」を一般公開
  • 実開発で分かったGoogle App Engine for Javaの“すごさ”

    ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です

    実開発で分かったGoogle App Engine for Javaの“すごさ”
  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る
    w6500
    w6500 2011/07/04
  • 今、知っておきたいJavaScript

    Webブラウザとテキストエディタさえあれば、プログラミングして実行できるシンプルで手軽な言語――。それがJavaScriptが初めて登場してからしばらくの間、多くの人が抱いた印象でした。しかし、Ajaxの登場に伴う第2のブーム以降、ハードルが高くなったように感じられます。 その大きな理由の一つが、DOM(Document Object Model)に基づくJavaScriptプログラミングでしょう。DOMは、HTMLやXMLを構成する各要素に対して、プログラムからアクセスして内部の情報を取得・変更したり、機能を利用したりするためのAPI(Application Programming Interface)です。DOMを使うことによって、WebページをリロードせずにWebページを部分的に書き換えたり、HTMLドキュメントの構造を動的に変えたりといったことが可能になります。 DOMは便利な仕組

    今、知っておきたいJavaScript
  • “ややこしい”Android

    Androidの勢いは増すばかりだ。米IDCが3月29日に発表した市場予測によると、2011年のスマートフォン出荷台数は前年比5割増しになる見込みで、Androidのシェアはそのうち4割に達するという(関連記事)。iPhone/iPadはもちろん、長い間スマートフォン市場をけん引してきたSymbianも抜き、トップに立つ見込みである。 その一方で、かねてから言われてきた“Androidの混在問題”が、いよいよややこしくなってきた。Androidの混在は、大きく二つある。一つは、バージョンの混在。もう一つは、ディスプレイの混在だ。 バージョンの混在 Androidは、バージョンアップのペースが速い。国内初のAndroidスマートフォン「HT-03A」に当初搭載された「1.5」がリリースされたのが、2009年4月。その後、「1.6」(2009年9月)、「2.1」(2010年1月)、「2.2」(

    “ややこしい”Android
  • Androidアプリ開発ノウハウ

    Androidアプリケーション開発コンテスト「Android Application Award (A3)2010-2011 Winter」のエントリー締切がいよいよ2月7日に迫った。開発者を応援するべく、ITproで掲載してきたAndroidアプリ開発ノウハウをまとめた。 あなたのAndroidアプリを“カメラアプリ化”する カメラアプリを作ろう 第1回 ボタン一つでアプリの背景をカメラ写真に変える 第2回 カメラ機能を加える Android ユーザビリティセミナー ユーザビリティ調査の極意を聞き、Flash/AIRによるAndroid開発の実際を見る AndroidアプリをJavaScriptAIRで作る AndroidアプリをJavaScriptAIRで作るツール 初めてのAndroidプログラミング Eclipseを導入して開発環境を整えよう 開発用PCAndroid端末の実

    Androidアプリ開発ノウハウ
  • イラストで学ぶIPネットワーク---目次

    ネットワークには,LANやWAN,バックボーンなど,いくつもの種類があります。インターネットは,これらのネットワークを相互に接続し合うことで,世界中との通信を実現しています。 では,どうやって実際に通信を実現しているか,そのしくみをきちんと理解できているでしょうか。改めて考えると,「なんとなく理解しているつもり」になっている点も多いのではないでしょうか。 そこで,この連載ではLANなどのネットワークを相互に接続した状況で,コンピュータ同士がどうやって通信するのか,そのしくみをイラストを使いながらやさしく解説していきます。一通りお読みいただければ,これまで不思議に思っていた点もスッキリと理解できるでしょう。 ネットワーク層に必要な五つの機能[前編] --- 複数のネットを経由して通信 ネットワーク層に必要な五つの機能[後編] --- 求められる機能を整理しよう 経路のつなぎ方は2種類ある[前

    イラストで学ぶIPネットワーク---目次
  • すぐに使えるインターネット・サーバー構築術(第2回)DNSを設定しよう

    すぐに使えるインターネット・サーバー構築術 (第2回)DNSを設定しよう Windowsに備わるドメイン名の名前解決機能を用意する ■前回はWindows Server 2003をセキュアなOS環境に整えた。今回は,今後Web,FTP,メールといったサービスを展開する上で必要なDNSサーバー機能を設定する。同時に,インターネットにサーバーを公開するときの基である静的IPアドレスの設定も施す。 ■Windows Server 2003は標準でDNSサーバー機能を備えている。ここではこれを利用する。Windows Server 2003にはDNSサーバーを設定するためのウィザードが用意されているので,比較的簡単に設定できる。 DNS(ドメイン・ネーム・システム)という言葉は日頃から耳にする機会が多くなってきたが,最初におさらいの意味も含めて簡単に説明したい。 ドメイン名とIPアドレスを結びつ

    すぐに使えるインターネット・サーバー構築術(第2回)DNSを設定しよう
  • 新たなデータベースの選択肢は“NoSQL”

    昨年末から「NoSQL」という言葉をネット上で見かけるようになった。字面だけを見ると「もはやSQLは必要ない」(No SQL)という意味にも取れる。だが実際には、「SQLだけに限らない」(=Not Only SQL)というのが正しいようだ。 NoSQLとは、SQL言語を利用しない非リレーショナルデータベース(RDB)を総称した表現である。代表的なものとして、数値や文字列といったデータ(value)を1個のキー(key)にひも付けて管理する「key-valueストア」がある。 key-valueストアで処理できるのは、keyで検索を実行してvalueの値を読み書きすることだけである。「販売単価が100円以上、1000円未満の製品情報だけを抽出」といった、SQLでは当たり前のように処理できる操作をNoSQLでは実行できない。RDBのようにデータの一貫性を厳密に保持しているわけでもない。 過去に

    新たなデータベースの選択肢は“NoSQL”
  • Apacheに対するサービス拒否攻撃を回避する方法

    筆者は最近,Apache HTTPサーバーに対するサービス拒否攻撃を防御するWebベースのセキュリティ・ツール「mod_evasive」を使い始めた。mod_evasiveは特定の挙動を探してそれをブロックするモジュールである。 mod_evasiveは,筆者が昨年の12月に紹介した「Suhosin」に似ている(関連記事:PHPの「守護神」Suhosin)。SuhosinはPHPスクリプティング・エンジンの安全性を大幅に高めるパッチである。Suhosinは,害を及ぼす危険性を持つありとあらゆるWebベースのコンテンツを検出し,それらがPHPエンジンを越えてシステムやネットワークに到達するのを防ぐ上で役に立つ。 mod_evasiveが機能する仕組みを説明しよう。mod_evasiveはまずURLリクエストをApacheサーバーに送信するIPアドレスの記録を取る。その後,あらかじめ設定した許

    Apacheに対するサービス拒否攻撃を回避する方法
  • DIコンテナ【Dependency Injection Container】

    DIコンテナは,「DI(Dependency Injection:依存性の注入)」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエアです。 DIは,コンポーネント(クラス)間の依存関係をソースコードから取り除くことで,プログラムの実行時までコンポーネント同士が依存関係を持たないようにするデザインパターンです。 例えば,あるクラスAの中で別のクラスBのインスタンスを生成して利用しているとき,AはBに強く依存してしまっています。つまり,Bを別のクラスに差し替えたときなどにはAも変更しなければなりません。このような依存関係は,AとBを別の人が作っている場合などに特に困ります。 こうした依存性をクラスから取り除くのがDIパターンです。Bへの依存性をAから排除するには,まずBの機能を抽象化したインタフェースIを定義し,Iを実装したクラスとしてBを作ります。 Bの

    DIコンテナ【Dependency Injection Container】
  • 第13回 速報!Facebookアプリケーション開発(入門編)

    次の 2. デスクトップ向けアプリケーション(External Desktop Apps)も, プログラムが稼働するのがウェブサーバー上なのか, ユーザーの PC デスクトップ上なのかの違いを除けば, 基的な仕組みは 1 と同じ仕組みと言えます。 最後の 3. Facebook 内アプリケーション(Internal Facebook Apps)は, Facebook のサイト内で Facebook の機能を拡張する形でサービス提供するアプリケーションです。 画面もドメイン名も Facebook のままですから, ユーザーは Facebook 自身のサービスとサードパーティの開発したサービスを 区別せずに利用することが可能です。 こちらが,狭義の Facebook アプリケーションと言えます。 もちろん,どんなアプリケーションでも勝手にユーザー情報を取得できるわけではなく, 事前に Fac

    第13回 速報!Facebookアプリケーション開発(入門編)
  • 図解で学ぶネットワークの基礎

    Copilot+ PCが6月18日に国内発売、物議かもしたRecallは格提供時期「未定」に 2024.06.17

    図解で学ぶネットワークの基礎
  • LinuxをセキュアにするSELinuxとはどんなもの?

    SELinux(エスイーリナックス)とはSecurity-Enhanced Linuxの略です。米国家安全保障局(The National Security Agency:NSA)が中心となって開発しているLinuxベースのセキュアOSです。Linuxの最新カーネル*2.6が正式採用したことで,数あるセキュアOSの中でも命と目されています。 不要なリソースの利用を制限 SELinuxの最大の特徴は,従来のLinuxやUNIXでは絶対的な権限を持っていたroot(ルート)アカウントの特権を無くしてしまったことです。リソースへの権限をユーザーやプロセスごとに細かく設定して,例外なくセキュリティ・ポリシーで制御します。必要最低限の権限しか与えないことで,クラッカに侵入されてもシステムへの影響を最小限に抑えることを目指しています。 図3 SELinuxではリソースへの全アクセスをセキュリティ・ポ

    LinuxをセキュアにするSELinuxとはどんなもの?
  • Linuxコマンド集 INDEX:ITpro

    Linuxのコマンドをカテゴリ別にまとめました。コマンドの動作、構文、オプションの意味までを掲載しています。コマンドの基を学びたい方は「Linuxコマンド道場」を参照ください。ファイルの操作からテキスト・ファイルの処理方法まで,例題に基づいて学べます。 コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス カテゴリ一覧 シェル・コマンド | ファイル管理 | システム管理 | ジョブ・プロセス管理 | テキスト・ファイル操作 | ネットワーク管理関連 | ネットワーク・クライアント関連 | セキュア・シェル(SSH)関連 | デバイス関連 | 印刷関連 | 符号化操作(圧縮・展開・エンコード・デコード) | パッケージ関連 | mtools関連(MS-DOS互換) | その他 アルファベット順メニューへ シェル・コマンド &コマンドをバックグラウン

    Linuxコマンド集 INDEX:ITpro
    w6500
    w6500 2010/09/06
  • 第4回 Catalyst(前編)---Perl向けWebアプリ・フレームワーク

    この記事は,日経ソフトウエア2006年9月号,連載「簡単実装で学ぶWeb技術2006」の第3回「Catalyst――Perl向けWebアプリ・フレームワーク」の再録です。記事は執筆時の情報に基づいており,現在では異なる場合があります。 こんにちは,結城浩です。今回はPerlのWebアプリケーション・フレームワーク「Catalyst」を解説し,簡単なメモ帳プログラムを作ります。 Catalyst(カタリスト)は,Perlで作られたWebアプリケーション・フレームワークです。Catalystを使うと,Webアプリを簡単に作成・テスト・配布することができます。catalystという単語のそもそもの意味は,「触媒」あるいは「促進させるもの」です。Perlのモジュール同士を触媒のようにうまく結びつけて,Webアプリ作成を促進させるという意味の名前なのでしょう。 Catalystのオフィシャルページは

    第4回 Catalyst(前編)---Perl向けWebアプリ・フレームワーク
    w6500
    w6500 2010/08/17
  • 基礎から理解するデータベースのしくみ(5):ITpro

    SQL文を実行する際のパフォーマンスに大きな影響を及ぼすものとして,もう一つ,インデックスがあります。インデックスについては,どう定義すべきかというデータベース設計上の問題と,インデックスを有効に使うためのSQL文をどう書くべきかというコーディング上の問題があります。 ここではテーブル設計上の問題を主に取り上げます。SQL文のコーディングについては囲み記事「SQL文を最速にする11のポイント」を参照してください。 インデックスは,テーブルの検索速度を向上させるためのものです。それぞれのSQL文に対して最適なインデックスを定義するのが理想的ですが,実際にはある程度限られたインデックスで,必要なパフォーマンス要件を満たすようにインデックスを定義する必要があります。加えて,どんなSQL文が実際に発行されるのかがあらかじめわかっていない場合は,適当な想定に基づいてインデックスを定義しておかなくては

    基礎から理解するデータベースのしくみ(5):ITpro
    w6500
    w6500 2010/05/09
  • DOMから始めるJavaScriptモダン・スクリプティング---目次:ITpro

    近年,Ajaxの台頭をきっかけに,JavaScriptを使ったブラウザのリッチ・クライアント化が進んできました。現在では,ページの表示を変化させるだけであれば,ほとんどのことはJavaScriptのみで対処することが可能です。それを実現するのがDOMなのです。 第1回 DOMから始めるモダン・スクリプティングの世界へようこそ 第2回 ブラウザからHTMLはどう見えているかを理解しよう ~ドキュメントツリー~ 第3回 DOMスクリプティングのことはじめ(1) ~要素(タグ)を狙い撃ち~ 第4回 DOMスクリプティングのことはじめ(2) ~これはどんな要素?~ 第5回 DOMを使ってHTMLを自由自在に書き換える 第6回 イベントハンドラから脱却しよう 第7回 スクリプトを完全に分離しよう ~コンテンツ,プレゼンテーション,ビヘイビア~ 第8回 スクリプトのパッケージ化 ~使い回しできるスクリ

    DOMから始めるJavaScriptモダン・スクリプティング---目次:ITpro
  • 1