タグ

ブックマーク / atmarkit.itmedia.co.jp (71)

  • 今夜分かるSQLインジェクション対策 ― @IT

    【関連記事】 内容についてのアップデート記事を公開しています。あわせてご確認ください(編集部) Security&Trustウォッチ(60) 今夜こそわかる安全なSQLの呼び出し方 ~ 高木浩光氏に聞いてみた http://www.atmarkit.co.jp/fsecurity/column/ueno/60.html Webアプリケーションに対する攻撃手法の1つであるSQLインジェクションの存在は、かなり広く知られるようになった。しかし、その対策はまだ当に理解されていないように思える。フォームから渡された値の特殊文字をエスケープしたり、PHPのmagic_quotes_gpcといった自動エスケープ機能をオンにするだけで対策したつもりになっていないだろうか。 基はもちろん、セカンドオーダーSQLインジェクションやマルチバイト文字を利用したSQLインジェクションの攻撃パターンや、その対

    今夜分かるSQLインジェクション対策 ― @IT
  • 星野君のWebアプリほのぼの改造計画 連載インデックス - @IT -

    セミナー申し込みフォームがスパムの踏み台? 星野君のWebアプリほのぼの改造計画(1) 念願のWeb担当に異動した星野君。最初の仕事はセミナーのWeb申し込みフォームを3日で作ることだった(2005/10/15) ・セミナー申し込みフォームを3日で作れ! ・Webサーバはどこだろう? ・Web申し込みフォームなんて簡単ですよ ・スパムの踏み台は想定外!? 誰でもWeb管理画面に入れる気前のいい会社 星野君のWebアプリほのぼの改造計画(2) 星野君に与えられた次なる指令は……仕事がなかった。しかたなく「Web管理ツール」を調べてみると……(2005/11/19) ・仕事がない! ・サーバ上にある「admin」フォルダの謎 ・「admin」フォルダを封鎖せよ ・SQLインジェクション、発見! ・助けて! まこと先輩 ・Webアプリ改造計画発動-SQLインジェクション編 Webアプリ、入力チェ

  • @IT:クロスサイトスクリプティング対策の基本

    最近Webアプリケーションに存在するセキュリティホールが注目を浴びている。その中でも「クロスサイトスクリプティング」と呼ばれる脆弱性が有名であるが、クロスサイトスクリプティング脆弱性について正確に理解している人が依然として少ないと感じる。 稿では、クロスサイトスクリプティングとはどのような脆弱性であるのか、この脆弱性を持ったサイトが攻撃されるとどのような被害が起き得るのか、なぜそのようなセキュリティホールが作り込まれてしまうのか、どのように対策をすればよいのかを解説していく。 ※以下文中では、クロスサイトスクリプティング脆弱性のことを「XSS」と表記する。「Cross Site Scripting」の略であるから「CSS」と表記している記事もあるが、「Cascading Style Sheets」の略も「CSS」となり紛らわしいため、「XSS」と表記する場合が多くなってきている。稿で

    @IT:クロスサイトスクリプティング対策の基本
  • @IT:CoolなEclipseプラグイン(3) データベース開発を支援するプラグイン

    今回は、データベースのモデリングを行うClayプラグイン、テーブルの閲覧、編集、SQLの実行をサポートするDbEditプラグイン、データベースに定義したテーブル情報からHibernateに必要なファイルやEJBを生成するMiddlegenIDEを紹介します。いずれもデータベースをEclipseから利用する際に便利なプラグインです。ぜひお試しください。 1.Clayプラグイン Clayプラグインはアッズリーにより開発されているデータベースのモデリングを行うためのプラグインです。Clayプラグインには、無償のCore Editionと有償のPro Editionの2つがあります。DDLの生成などの高度な機能を持ったデータベースのモデリングツールは一般的に高価ですが、Core Editionを利用するとオープンソース用のデータベースの設計であれば無償で利用することができます。Pro Editio

    @IT:CoolなEclipseプラグイン(3) データベース開発を支援するプラグイン
  • JDBC接続を高速化する- PreparedStatementキャッシュの威力-

    JDBC接続を高速化する- PreparedStatementキャッシュの威力-:事例に学ぶWebシステム開発のワンポイント(11) 連載では、現場でのエンジニアの経験から得られた、アプリケーション・サーバをベースとしたWebシステム開発における注意点やヒントについて解説する。巷のドキュメントではなかなか得られない貴重なノウハウが散りばめられている。読者の問題解決や今後システムを開発する際の参考として大いに活用していただきたい。(編集局)

    JDBC接続を高速化する- PreparedStatementキャッシュの威力-
    mullen
    mullen 2006/10/10
    PreparedStatement
  • クラスライブラリを攻略「データベース編」 @IT:連載 基礎から学ぶサーブレット/JSP 第10回

    いよいよクラスライブラリ活用編も大詰めの今回は「データベース編」です。なんといっても、サイトにさまざまな可能性を与え、高度なデータ処理を支えるのはデータベースサーバをおいてほかにありません。 もっとも、データベース連携だからといって決してかまえることはありません。稿をご覧いただければきっとご理解いただけるように、データベース連携を司るjava.sqlパッケージ(JDBC)の用法は、これまでとなんら変わることなく、極めて定型的です。いくつかの定石的なアルゴリズムをさえ押さえてしまえば、8割方の用途は十分に満たせるはずです。データベースは決して難しいものではありません。 ただ、ある一定量を超えたデータの操作に対して常にパフォーマンスを維持するためには、やはりそれなりのテクニックが求められるでしょう。もしもデータベース連携プログラミングに難しい点があるとしたら、その時々のボトルネックを適切に把

    クラスライブラリを攻略「データベース編」 @IT:連載 基礎から学ぶサーブレット/JSP 第10回
  • 連載記事 「現場に活かす Jakarta Project」

    仕事に活かそう!「Jakarta Project」 [連載]現場に活かすJakarta Project(1) Jakartaには優秀なオープンソースが豊富に用意されている。あなたの仕事に役立つJakrtaプロダクトの活用法を徹底紹介!

  • 文字列処理と入力チェック

    (1)文字列の置換処理 前回までで、共有ブックマークの基的な機能は一通りそろいました。これで、問題なくサービス開始、としたいところですが、その前に行うべき処理があります。 これまではユーザが入力した文字列のチェックを行わずに、そのままHTML文への出力 やSQL文の作成に使用していました。これまでの例で使用した文字列にはたまたま<や>、シングルクオート“'”が含まれていませんでしたが、もしユーザーがこれらの文字列を含む内容を登録したいと考えた場合、ページのデザインが崩れたり、SQL文の実行でエラーが出たりしてしまいます。また、ユーザーが悪意を持っていた場合に は、データの改ざんや破壊などを目的とした文字列がパラメータとして渡されることも考えられます。これらは、重大なセキュリティーホールであるため、特にパラメー タとして渡される値の扱いには注意が必要です。 そこで、入力された文字列を適切に

    文字列処理と入力チェック
    mullen
    mullen 2006/10/08
    文字列処理とか
  • ビルドを効率化するEclipseプラグイン - @IT

    Java開発において、標準的な開発ツールとしてAntが利用されています。最近では、Mavenの2.0がリリースされ、Antの次のビルドツールとして注目を浴びつつあります。今回は、MavenのリポジトリからライブラリをダウンロードしEclipseのプロジェクトへインポートするJar Retriever、Mavenの設定ファイルpom.xmlの記述とライブラリの設定、Mavenの実行を支援するm2eclipse、ターゲットの依存関係をグラフで分かりやすく表示し、Antのビルドファイル作成を支援するAnt Explorerと、ビルドを効率化するプラグインを紹介します。 1.Jar Retrieverプラグイン Javaのアプリケーションを開発していて、あるライブラリを利用したくなったとします。そのライブラリがオープンソースであった場合、そのライブラリをインストールするために、まずWebブラウザで

    ビルドを効率化するEclipseプラグイン - @IT
    mullen
    mullen 2006/10/08
    ビルドを効率化するEclipseプラグイン
  • データベースの利用に便利なEclipseプラグイン

    3.DBViewerプラグイン DBViewerプラグインは、Eclipse上からのデータベース操作を支援するプラグインです。テーブル一覧の表示、テーブルの内容の編集、SQLの実行、表示を行うことができます。 ■特長 ・JDBCに対応したデータベースに対応 Oracle等のデータベースに付属するツールは、ベンダ固有のデータベースしかサポートしていませんが、DBViewerプラグインは、Javaからデータベースにアクセスする標準のインターフェイスであるJDBC用のドライバを提供しているデータベースであれば、どのデータベースでも利用できます。 ・テーブルの表示/編集 テーブルの一覧を表示し、その内容の表示、編集をExcel感覚で行うことができます。 ・SQL文の実行/フォーマット SQL文を実行することができます。また、blancoDbSQLフォーマットプラグインの機能が統合されており、記述

    データベースの利用に便利なEclipseプラグイン
  • @IT:Eclipseを使おう(1)

    記事は2005年に執筆されたものです。環境構築についての最新情報は「バージョン別セットアップマニュアル一覧」の「Eclipse」をご参照ください。Eclipse全般の最新情報は@IT キーワードINDEXの「Eclipse」をご参照ください。 オープンソースとしてコミュニティに寄付されてから3年半、@ITに最初の記事が掲載されてから2年半、いまだとどまるところを知らずに進化し続ける統合開発環境、Eclipse。書籍やWeb情報のさらなる充実ぶりは、相変わらずの関心の高さを裏付けるものです。 昨年6月の@IT読者調査でも、Eclipseが、利用しているIDE、今後利用したいIDE、ともに第1位を獲得しています。 さて、Eclipseは、2005年6月28日に待望の3.1がリリースされました。JDK 1.5の機能に完全対応するなど、大幅な機能拡張、変更が加えられています。 幸いなことに、また

    @IT:Eclipseを使おう(1)
  • MergeDocでEclipseのポップアップ表示を日本語化する

    「Eclipse 3.0のインストールと日語化を行う」にて紹介したように、言語パックを適用することによって、Eclipseのメニューやマニュアルは日語化されます。しかし、エディタにカーソルを当てたときにポップアップ表示されるAPIの説明は英語のままです。これはEclipseがJDK付属のJavaソースからJavaDocコメントを取得し表示しているためです。そこで稿では、Javaソースと日APIをマージするMergeDocというツールを紹介します。MergeDocを実行することによって下図のようにAPIコメント(StringクラスのtoUpperCaseメソッドの説明)を日語化することが可能になります。 操作方法 (1)MergeDocの入手 MergeDocはSourceForge.jpにて公開されています。パッケージの中からMergeDocを選択して、その時点の最新バージョン

    MergeDocでEclipseのポップアップ表示を日本語化する
  • JavaでCSV形式のファイルを読み書きする

    表形式のデータを簡単に扱いたいときに、CSV(Comma Separated Values)形式を用いる方法があります。CSVでは、データの各要素をカンマ(「,」)で区切り、改行がそのままデータ行の区切りを表します。CSVデータは、一般に「.csv」という拡張子の付いたテキストファイルとして保存されます。テキストエディタだけでなく、Microsoft Excelなどの表計算ソフトでも読み込むことができ、閲覧や編集が簡単なため、よく利用されます。 稿では、CSV形式のデータをJavaで扱うときの基的な手順を紹介します。サンプルとして、以下のCSVデータを扱います。このデータは、日の作家の生年/没年を表しています。 解説 CSVデータの読み込みには、コアAPIjava.io.BufferedReaderクラスと、java.util.StringTokenizerクラスを併用します(J2

    JavaでCSV形式のファイルを読み書きする
  • ログローテーションとAnalogの導入

    前回、ログを記録する方法を紹介したが、記録しただけでは役に立たない。今回は、ログファイルの管理方法と、ログの分析手段として「Analog」の導入・運用方法を紹介する。 前回は、Apacheが記録するアクセスログやエラーログの設定について紹介した。いうまでもないと思うが、ログというものはただ記録しただけでは何の意味もない。それどころか、ログの管理を怠るとディスク容量を圧迫するだけの無用の長物になりかねない(これを「ディスクの肥やし」などという)。 そうしたことが起こらないよう、定期的に管理・運用するのも管理者の務めである。そこで、今回はログの定期的なローテーションとその内容分析について紹介する。 ログファイルのローテーション 先述したように、ログファイルを放っておくとディスクを圧迫することになりかねない。それだけでなく、ログファイルのサイズが大きくなれば、ログの解析にも悪影響を及ぼす。サイズ

    ログローテーションとAnalogの導入
  • JDKのバージョンが原因で起きるコンパイルエラー

    お盆を過ぎて暑さもようやく一段落してきましたが、皆さんいかがお過ごしですか。お盆休みで故郷に帰省して、のんびりできた方もいらっしゃるでしょうか。お盆休みを避けて、これから休暇を取られる方や、開発プロジェクトによっては、上期末に納品を控えていて、休みは納品後にまとめて、という方もいらっしゃるかもしれませんね。 この連載もいよいよラストスパートです。お休みが取れた方も、これからお休みを取られる方も、最後までどうぞお付き合いください。 JDKのバージョンの違いが原因で起きるコンパイルエラー 分類:コンパイルエラー 今回ご紹介するコンパイルエラーは、ちょっと特殊な環境で発生するエラーです。閉じた環境で開発をしている場合にはなかなか起きないですが、チームで開発をしていたりすると、発生することもありますのでぜひ知っておいてください。 このコンパイルエラーは、かなり限定的な状況で発生するものなので、エラ

    JDKのバージョンが原因で起きるコンパイルエラー
    mullen
    mullen 2006/08/31
  • Eclipseでファイル操作の理解を深める

    前回はコンピュータで数値、文字をどのように表現しているかについて理解しました。今回はこれらの値をファイルから読み込んだり、ファイルへ書き出したりする方法について理解しましょう。ファイル操作の基から、バイトストリームと文字ストリームの違い、プリミティブデータ値のファイル入出力、文字符号化を意識した文字データのファイル入出力といった事項について解説します。 ファイル操作 カンマで区切って保存したCSVファイルから計算に使用するデータを読み込んだり、計算した結果をファイルへ保存するといったプログラムが必要になることはよくあります。こういった処理を実現するためには、ファイルの読み込み、ファイルへの書き込みといったファイル操作をする必要があります。今回は、Javaではどうやってファイル操作を実現するのか解説します。 Javaにはjava.io.Fileというクラスが用意されています。このクラスはフ

    Eclipseでファイル操作の理解を深める
  • パスワード、記憶に頼っていて大丈夫? ― @IT

    パスワード、記憶に頼っていて大丈夫? ~パスワード作成と管理~:ツールを使ってネットワーク管理(13)(1/5 ページ) サーバやルータなどの管理するマシン、アプリケーション……多数のパスワードを管理しなくてはならない管理者の律子さんは、パスワード記憶許容量をオーバーしそうです。 パスワード、どうやって覚えてる? 律子さんは管理者という仕事柄、サーバやルータなど管理するマシンの分だけ(実際にはアプリケーションのパスワードなどを考えるとそれ以上になるのですが)パスワードを管理しています。 いまのところ記憶に頼っているのですが、管理するパスワードが増えてきたり、まめに変更したりしていることもあって、最近どうにも覚えが悪くなっています。そして、一度覚えたはずのパスワードを忘れていて、慌てて台帳を見に行くことも多くなっています(律子さんの会社ではパスワードは台帳に記入されて鍵の掛かるロッカーに保管

    パスワード、記憶に頼っていて大丈夫? ― @IT
  • JavaとJavaScriptの親しい関係

    教育界、技術者コミュニティでJava言語の教育と啓蒙に長年携わってきた 筆者が、独自の視点からJavaの面白さを掘り下げていく。(編集局) 注目を浴びるJavaScript JavaScriptが世に広まって10年近くたちますが、最近話題に上ることが多くなってきています。なぜ、いまさらJavaScriptが注目を浴びているのでしょうか? JavaScriptはECMA(ヨーロッパ電子計算機工業会)によって、ECMAScriptとして標準化されていて、Standard ECMA-262 ECMAScript Language Specification 3rd edition (December 1999)や、Standard ECMA-357 ECMAScript for XML (E4X) Specificationといった仕様が公開されています。これらの仕様を見て分かるように、Java

    JavaとJavaScriptの親しい関係
  • Eclipseで使える動的テスト支援ツール

    Eclipseプラグインで提供されるテストツールが充実してきた。連載では、システム開発の現場に有効なテストツールを紹介し、統合開発ツールにEclipseを選択する開発におけるテストの効率化、ソフトウェア品質の向上のヒントを提供する。(編集部) JUnitを用いた単体テストを支援するツールとは、JUnitが提供する機能を拡張あるいは、テストコードの作成を支援する機能を提供する単体テストツールであり、うまく活用することで、テストにおける作業効率を向上したり、より高度なテストができるようになります。今回はTPTP、Automated Continuous Testing、djUnitプラグインを紹介します。 JUnitを用いた動的テスト プログラムの品質を確保するためには、これまでの連載で紹介した静的なコード解析に加え、プログラムが仕様に従い正しく実装されているか、テストにて確認する必要があり

    Eclipseで使える動的テスト支援ツール
  • Web 2.0アプリ自動生成ツール“Tuigwaa”(1/3) ― @IT

    四次元データ 西岡 悠平/染田 貴志 2006/6/23 エンジニアではない一般ユーザー自らが、Webの操作だけで簡単にWebアプリケーションを作れるソフトウェア“Tuigwaa”。2005年度上期未踏ソフトウェア創造事業に採用されたプロジェクトは、Web 2.0の世界を切り開く純国産ソフトウェアとして大きな注目を集めている。そのコンセプトを紹介しよう。(編集部) ■いつまでもWebアプリ化されない現場 「プロジェクトにかかわっている社員全員の名前、連絡先、所属を今週中にリストにしたい」 「新製品についての説明会を来週行う。ついてはお得意さまへの連絡と参加の可否、人数を把握したい」 このようなシーンを日常の業務の中で見掛けたこと、または経験されたことはありませんか。細かい内容は異なれど、こういった「ある程度急を要し、その都度必要な情報の内容が異なる、そして集められた情報がその後複数人で共