mod_securityとは mod_securityは、GNUライセンスの下で公開されている、オープンソースのWAFである。mod_securityの公式サイトでは、「intrusion detection and prevention engine」と説明されている。
Webアプリにおける11の脆弱性の常識と対策:Webアプリの常識をJSPとStrutsで身につける(11)(1/4 ページ) 本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です 【2013年2月25日】編集部より、おわびと訂正のお知らせ 本稿において読者の皆さまより多数のご指摘をいただきまして、誠にありがとうございます。編集部であらためて調べた結果、間違いを把握し、あらためて修正版を掲載させていただきます。この度は、長期にわたり誤った内容を掲載したので、読者の皆さまに多大なご迷惑をお掛けしたした点をおわび申し上げます。 通常、記事に間違いがあった場合には、筆者確認後に修正版を掲載するのですが、今回の場
XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで本連載では、そのようなメジャーなもの“以外”も掘り下げていきます (編集部) JSONPだって、セキュリティを気にしてほしい 皆さんこんにちは、はせがわようすけです。今回は、JSONPを使用する場合のセキュリティについて解説しましょう。 JSONPとは、JSON with Paddingの名称が示しているとおり、JSON形式のデータにコールバック関数の呼び出しのためのコードを付加することで、クロスドメインでデータの受け渡しを実現するためのデータ形式です。JavaScriptからクロスドメインでのデータが簡単に扱えることなどを理由に、多数のWebアプリケーションでAPIの一部としてJSONP形式でデータの提供が行われています。 具体的な例を見
皆さんこんにちは、川口です。コラムの第6回「IPSは“魔法の箱”か」でまっちゃ139で講演をしたお話を書きましたが、今度は関東でやっている「まっちゃ445」にお招きいただき、お話ししてきました。 まっちゃ445は募集開始から定員が埋まるまでがとても速く、今まで参加したことがなかったのですが、今回は運良く(?)講師側ということでキャンセル待ちにならずに参加することができました。ロックオンの福田さんがオープンソースのECサイト構築システム「EC-CUBE」に脆弱(ぜいじゃく)性が発見された際のインシデントハンドリングのお話をされていました。EC-CUBEにSQLインジェクションとクロスサイトスクリプティング(以下、XSS)が発見されたあとの対応のお話です。JSOCで日々インシデントにかかわっているいる自分としてはとても興味深い内容でした。 日本のエンジニアのセキュリティ意識は過剰? 今回のよう
[無視できない]IEのContent-Type無視:教科書に載らないWebアプリケーションセキュリティ(2)(1/2 ページ) XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで本連載では、そのようなメジャーなもの“以外”も掘り下げていきます(編集部) 無視できないIEの「Content-Type無視」問題 皆さんこんにちは、はせがわようすけです。 第2回では、Internet Explorer(以下、IE)の仕様でも特に悪名高い「Content-Type無視」について説明します。 IEのContent-Type無視問題は非常に複雑で、私自身も完全に説明できる自信はないのですが、それでもセキュアなWebアプリケーションを開発するうえで避けては通れない問題ですので、取り上げることにしました。
前回はスクリプトインジェクションがなくならない理由を紹介しました。それをふまえて今回はスクリプトインジェクションを防ぐ10のTipsを紹介します。 デフォルト文字エンコーディングを指定 php.iniには、PHPが生成した出力の文字エンコーディングをHTTPヘッダで指定するdefault_charsetオプションがあります。文字エンコーディングは必ずHTTPヘッダレベルで指定しなければなりません。しかし、デフォルト設定ではdefault_charsetが空の状態で、アプリケーションで設定しなければ、HTTPヘッダでは文字エンコーディングが指定されない状態になります。 HTTPヘッダで文字エンコーディングを指定しない場合、スクリプトインジェクションに脆弱になる場合あるので、default_charsetには“UTF-8”を指定することをお勧めします。サイトによってはSJIS、EUC-JP
「XSSDetect」はWebアプリケーションのクロスサイトスクリプティング(XSS)の脆弱性を検出できる。 米Microsoftは、Webアプリケーションのクロスサイトスクリプティング(XSS)の脆弱性を検出できる新ツール「XSSDetect」β版の無償提供を開始した。 Microsoftによると、XSSDetectはエンタープライズ向けの「Code Analysis Tool for .NET」(CAT.NET)コードベースの簡易版で、Visual Studioのプラグインとして実行される。 コンパイルされたマネージドアセンブリ(C#、Visual Basic .NET、J#)をスキャンして、データフローパスを分析できるほか、データに適切なエンコーディングやフィルタリングが施されているかどうかも判別できる。 Visual Studio 2005と.NET Framework 2.0に対
史上空前のEUC-JPブームはとりあえずおいておいて、今日も最強の文字コードであるUTF-7について。 これまで私の中では、UTF-7によるXSSを避けるためには、Shift_JISやUTF-8といった、IEが受け入れ可能なcharsetをHTTPレスポンスヘッダまたは<meta>で明記してやればよいという理解でした。 具体的には、HTTPレスポンスヘッダで Content-Type: text/html; charset=Shift_JIS とするか、生成するHTML内で <meta http=equiv="Content-Type" content="text/html; charset=Shift_JIS"> とすれば、UTF-7によるXSSは防げると思っていました。ところが、後者の<meta>によるcharsetの指定では、条件によってXSSが防げないことがあるということに気付きま
分かってるつもりではあるけれど…… クウはベンチャー企業で働くWebアプリケーションのエンジニア。でもそこは小さなベンチャー企業、セキュリティのことは分かっていながらも、動くものを納品するので精いっぱい……。今日は納品のため、客先でミーティングに参加していた。そしてお客様から受けた指摘は、こんな一言だった。 お客さん 「……で、このWebアプリケーション、セキュリティは大丈夫なんだよね?」 クウ 「は、はいっ! もちろんです!」 お客さん 「じゃあ、これからもよろしく頼むよ」 クウ、ユウヤ 「よろしくお願いしますっ!」 無事、お客さんとのミーティングを終えたクウとユウヤの2人は、近くの喫茶店で一息いれることにした。 クウ 「最近はセキュリティのことを聞かれることがかなり増えてきましたねぇ」 ユウヤ 「ああ、そうだね。営業の段階から『セキュリティはどう担保されているんだ?』なーんてことをいわ
今回は熟練したWebアプリ開発者なら常識のクロスサイトスクリプティング対策の落とし穴を紹介します。 JavaScriptを排除しているつもりで排除に失敗?! 最近はSanitize(サニタイズ)という言葉の代わりにValidation(検証)という言葉をよく聞くようになったと思います。Sanitizeの意味を辞書で調べると「汚れている物をきれいにすること」とされています。この意味の通り汚れた変数をきれいにして使えば安全に利用できるとする考え方に基づくのがサニタイズ手法です。典型的な例は、「テキストを出力する前に"<"と">"を取り除く」方法があります。 例1 "<"と">"をereg_replaceで取り除く $safe_text = ereg_replace($_GET['text'], '[<>]', ''); この$safe_textを <a href="/script.php?t
クロスサイト・スクリプティングという言葉は元々,WebアプリケーションのHTMLエンコード漏れなどを利用することによって第三者にJavaScriptを実行させる手法を指す。広義では,HTMLのエンコードによる画面改変などを含むこともある。 前回述べたように,クロスサイト・スクリプティングのぜい弱性はWebアプリケーションに見付かるぜい弱性の半分以上を占める。数年前から指摘されているにもかかわらず,一向になくならない。その理由として,クロスサイト・スクリプティング対策あるいはHTMLエンコード注1)に対する「神話」があり,正しい対策の普及を遅らせているように思う。その「神話」の数々について説明しよう。 注1)実体参照(entity reference)というのが正式だが,あまり普及していない用語なので,HTMLエンコードという用語を用いる 「すべからくHTMLエンコードすべし」が鉄則 HTM
ブラインドSQLインジェクションも不必要情報の脆弱性も覚えた星野君。だけど覚えないといけないことはまだまだありそうです。今日も赤坂さんといっしょにお勉強。 「はい、これでクロスサイトスクリプティングやってみせて」赤坂さんがそういって見せてくれた勉強用のWebアプリケーション、あれ、見たところ完ぺきなんですが…… 高橋さん 「どうよ?」 星野君 「え……。どうって何がですか?」 高橋さんは唐突に会話を始めることが多い。大抵の場合、星野君には何の話か分からない。 高橋さん 「こないだ赤坂さんとWebアプリの検査したでしょ。どうかなって」 星野君 「どう……っていうか、なんか難しい感じでした。簡単なのはすぐに見つけられると思うんですけど……」 高橋さん 「ふーん……」 高橋さんはしばらく考え込んだ後、赤坂さんに声を掛けた。 高橋さん 「ねぇ、赤坂さん。いまって暇?暇だよねー?」 赤坂さん 「いや
XSS (Cross Site Scripting) Cheat Sheet Esp: for filter evasion By RSnake Note from the author: XSS is Cross Site Scripting. If you don't know how XSS (Cross Site Scripting) works, this page probably won't help you. This page is for people who already understand the basics of XSS attacks but want a deep understanding of the nuances regarding filter evasion. This page will also not show you how to
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く