オンラインの無料動画で学ぼう!千葉 順先生
オンラインの無料動画で学ぼう!千葉 順先生
WordPress 4.0.1ではXSSの脆弱性などが修正された。悪用された場合、Webサイトをハッキングされたり、クロスサイトリクエストフォージェリ(CSRF)攻撃を仕掛けられたりする恐れがある。 ブログ作成ソフトの更新版となる「WordPress 4.0.1」が11月20日に公開された。クロスサイトスクリプティング(XSS)などの深刻な脆弱性が修正されており、ユーザーに対して自分のWebサイトを直ちに更新するよう呼び掛けている。 WordPressのブログによると、WordPress 4.0.1では3件のXSSの脆弱性を含め、計8件の脆弱性を修正した。悪用された場合、Webサイトをハッキングされたり、クロスサイトリクエストフォージェリ(CSRF)攻撃を仕掛けられたりする恐れがある。脆弱性は3.9.2までのバージョンに存在する。 更新版は、自動更新を有効にしていれば自動的に配信される。脆
連載第1回目ではCakePHPを抽象的に紹介しました。今回はCakePHPのフレームワークとしての機能を具体的に紹介いたします。なお、紹介する機能は安定版の1.1系をもとにしています。 MVCモデル CakePHPの構造はWebアプリケーション開発で実績のあるMVCモデルを採用しています。MVCについての解説は少々長くなるのでここでは省略させていただきますが、非常にシンプルな構造なのですぐに理解できます。MVCモデルの採用はそれほど手間をかけずに可読性と再利用性が上がり、デザイナーとの分業もしやすくなります。 Cool URI CakePHPの初期状態のURI規則は「Cool URI」と言える綺麗な構造です。 http://example.com/コントローラー名/アクション(メソッド)名/パラメータ1/パラメータ2… たとえば「ユーザの情報を編集するURI」であれば、Usersコントロー
今回はWebアプリケーションを作ったことがない方でも分かるようクロスサイトスクリプティング脆弱性を解説します。 クロスサイトスクリプティングとは? 初めてクロスサイトスクリプティングと聞いて、どのような問題なのかすぐに理解できる人はいないと思います。サイトAに記述されたJavaScriptプログラムがサイトB上で実行されるために発生することが問題とされたので、「サイト間をまたがるスクリプトの実行」問題として、クロスサイトスクリプティング(XSS)と名前が付けられました。この命名では直感的に分かりづらい、サイト間にまたがらずHTMLメールなどにJavaScriptを挿入する攻撃でも同じ効果が得られることから、「JavaScriptインジェクション」とも呼ばれるようになっています。 図1 簡単なクロスサイトスクリプティング 例1 簡単な直接攻撃 掲示板サイトに投稿されたデータをエスケープ処
PHPは構文も容易で、開発者が言語を習得するのは非常に簡単です。また、性能もよいためWebアプリケーション構築に幅広く利用されています。 PHPが開発され始めた頃は、WebアプリケーションといえばCGIインターフェースを利用し、既存の汎用言語でプログラミングするのが一般的でした。PHPは、URIやPOSTリクエストのデコードや、HTTPセッション管理を標準機能として持っています。埋め込み型言語であるので、PHP自体がテンプレートとも言えます。PHPは汎用プログラミング言語としても利用できますが、簡易版のWeb開発フレームワーク(以下フレームワーク)と言えます。 筆者はこれがPHPが非常に人気の高い言語になった理由の一つだと考えています。しかし、PHP本体のフレームワーク的な機能は現在のフレームワークとしては不十分です。このため、PHP用のフレームワークが多数開発されています。 本連載は、Z
WordPressには、いくつかのプログラム言語が利用されています。 主に使うものといえば、以下のような言語です。 WordPress関数(PHP) PHP HTML CSS JavaScript(jQuery) ただ、これだけの言語があると、初めてWordpressに触れる人には、覚えるのが大変なのではないかと思います。 というか、ある程度プログラム経験がある僕でも、揮発性の高い脳を利用しているため、全く覚えられません。 ということで今回は、Wordpressで「これどうすればいいんだったっけ?」「あれなんて関数だったっけ?」なんて時に見ると便利なカンニングペーパー(チートシート)の紹介です。 WordPressチートシート WordPressで重要な部分の覚え書きというか、これだけ覚えておけばある程度Wordpressを使えるようになるチートシートです。 日本語版 WordPress
セキュリティは古くて新しい問題です。SQLインジェクションも古くからある問題ですが現在の問題です。対策は比較的簡単なのですが今でもなくなりません。と言うよりも今でも現役のセキュリティ上の問題で十分注意が必要です。この連載でも何度かSQLインジェクション対策について簡単に取り上げています。 第5回 まだまだ残っているSQLインジェクション 第14回 減らないSQLインジェクション脆弱性 第15回 減らないSQLインジェクション脆弱性(解答編) 第24回 無くならないSQLインジェクション脆弱性 今回はSQLインジェクションを復習してみたいと思います。 SQLインジェクションとは SQLインジェクションはプログラマが意図しないSQL文を実行させる攻撃で、2種類の攻撃方法に分類できます。 直接SQLインジェクション 間接SQLインジェクション 直接SQLインジェクション 直接SQLインジェクショ
はじめに 先日、東京のお台場にガンダムの実物大の模型ができました。見に行かれた方も多いのではないでしょうか。CGでどんな映像でも作れる時代ですが、やはり実物というのは迫力が違うものです。 ガンダムに対抗するわけではないのですが、本稿では鉄道模型の制御に挑戦してみようと思います。模型であっても、実際に車両が動くというのは格別なものです。普通、制御というとC言語などを使用しますが、ここではPHPからLAN経由で制御するようにしてみました。まずどうやって制御しているのか、見ていきましょう。 こんなふうに動きます まずは写真のような一直線のレイアウトを動かしてみましょう。普通のNゲージでは電源は1ヵ所だけ供給しますが、今回は5ヵ所に供給しています。これについては、後ほど解説します。 図1 直線レイアウト そして、PHPのプログラムはリスト1のようになります。このプログラムをコマンドラインから実行す
前回の記事でSQLインジェクションの話は終わりにして、クロスサイトスクリプティングの話を書かせて頂こうと思っていました。しかし、6月5日に東京にて開催されたPostgreSQLカンファレンス2007でセキュリティをテーマに講演させて頂き、意外にブラインドSQLインジェクションをご存じでない方が沢山いらっしゃいました。40名ほどの聴講者の皆様にSQLインジェクションをご存じの方?とお聞きするとほぼ全ての方が知っていると答えたのですが、ブラインドSQLインジェクションをご存じの方は数名でした。 SQLインジェクションの常識 ブラインドSQLインジェクションの話をする前に、SQLインジェクションとその対策の常識について確認します。 SQLインジェクション対策として間違ってはいないが不十分な対策 エラーメッセージを表示しない(特にSQLエラー) ユーザ入力文字列をエスケープする これらはSQLイン
WordPressには、いくつかのプログラム言語が利用されています。 具体的には以下のような言語です。 PHP HTML CSS JavaScript(jQuery) 細かなことを言えば、他にも使用されているものはありますが、ユーザーが編集するものと言えば大体はこの4つです。 今回は、これら4つの言語のコードを綺麗に整形してくれるツールの紹介です。 コード整形ツールとは コード整形ツールとは、書き方の定まっていないプログラムコードなどを、記法を統一して綺麗に書き直してくれるツールです。 WordPressテーマ作成や、カスタマイズで、コードをググッてよそからコピペ編集で使うときなどに、自分に合った記法に変換して使えます。 例えば、以下のようなことを、まとめて行いたい時に使うと、手動でやるより編集時間を大幅に短縮できます。 コードに適切なインデントを自動で設定する インデントをタブからスペー
10月11日、大田区産業プラザPiOにて「PHPカンファレンス2014」が開催されています。本稿では、本イベントの各セッションの模様を随時更新形式でレポートしていきます。 今年はセッショントラックが3つ、ワークショップトラックが1つ、計4トラック構成です。そのため、すべてのセッションはレポートできません。ご了承ください。 今年は4Fが受付になっています。 4F受付近辺にはスポンサーブースがあります。ぜひお立ち寄りください。 Ustreamの中継が行われています。 メイントラック Bトラック Cトラック ワークショップトラック 今年もWordCamp Tokyo 2014と共催です。WordCampの会場は1階です。 また、1Fにはジュンク堂書店が出張所を出しています。サイン会も予定されています。 オープニング PHPカンファレンス2014委員長の前島有貴さんより、オープニングの挨拶がありま
PHPアプリケーションの脆弱性は本当に多いのか? アプリケーションの脆弱性を調べるには、CVEを参照するのが簡単です。 CVEとは、NISTが公開しているソフトウェアの脆弱性データベースです。脆弱性を一意に特定できるIDを付与することを目的としています。Webアプリケーションの脆弱性もCVEに登録されています。CVEに2006/12/31に登録されたアプリケーションの脆弱性の数(同じアプリケーションは除く)は次の通りでした。日によって登録される脆弱性の数は異なります。12月31日は比較的多くの脆弱性が登録されました。 通常どおりPHPアプリケーションの脆弱性が目立ちます。特にこの日は同じアプリケーションで複数の脆弱性が登録されていたものがいくつかありました。 同じアプリケーションだけでなく、同じカテゴリの複数のアプリケーションに同じような脆弱性が見つかっている例もあります。 例えば「The
MacのWEB開発環境、私の場合はApacheとPHPとMySQLをセットアップする場合は、MAMPで一発で導入するか、もしくはOSXには標準でApacheとPHPが入っているので、そちらを使うかが選べます。 MAMPだと確かにお手軽なのですが、私は日常的にサーバーにも触れていたいので、OS付属のApacheとPHPを使っています。MySQLはHomebrewで導入します。 先日、Mavericks→Yosemiteにアップグレードした際、ApacheやPHPも再インストールされてしまいました。当たり前といえば当たり前なんですが、OSのアップデート毎に再設定することになります(Apacheも2.2系→2.4系にバージョンアップされてました)。なので引き継ぎもMAMPのが楽だと思います。 YosetemiにはApacheが既に入っています。 $ httpd -v Server version
rhacoとは rhacoはオープンソースで開発されているPHPのライブラリとセットアップフレームワークです。ほぼすべての機能をtokushima氏(http://tokushimakazutaka.com/)が開発しています。また、rhaco1.6 においてはそのほかに数人のメンテナがバグフィクスなどを行っています。開発者やメンテナは皆日本人なので、日本語でサポートを受けられるのも魅力的です。 公式にはあくまでライブラリという扱いではありますが、フレームワークとしての機能も持ち合わせているので、ほかのウェブアプリケーションフレームワークと同様、高速にアプリケーションの開発を行うことができます。 また、rhacoは後述するセットアップフレームワーク(セットアップアプリケーション)を内蔵しているので、rhacoを利用したアプリケーションは、デプロイ時の設定作業などをすべてブラウザ上で行うこと
セキュリティ対策は言語やアプリケーションを問わず非常に重要です。しかし、取るべきセキュリティ対策が確実に実施されないケースが広く見受けられます。 最近の例では次のような物があります。 WordPress Meenews 5.1 Cross Site Scripting WordPress Enable-Latex Remote File Inclusion Dolibarr 3.1.0 RC Cross Site Scripting / SQL Injection 上のURLの脆弱性も対策が簡単なものが多いですが、対策が簡単なSQLインジェクションの脆弱性も数多く見つかっています。 CMS Balitbang 3.x SQL Injection AdaptCMS 2.x SQL Injection Icomex CMS SQL Injection なぜ簡単な対策で防げる脆弱性でもセキュリテ
PHP 5.3は2009/6/30リリースされた最新のPHPです。PHPの基本的なバージョン付けのポリシーでは、マイナーバージョンで機能追加や細かい仕様変更が行われ、言語機能を拡張する場合にメジャーバージョンを更新することになっています。 しかし、PHP 5.3はマイナーバージョンアップですが機能追加や細かい機能変更が施されたバージョンではありません。言語機能が拡張されたメジャーバージョンアップと言ってよいような変更が行われたバージョンです。 PHP 5.3とPHP6 PHP 5.3にメジャーバージョンアップと言ってよいような変更が追加された理由はPHP6との互換性維持です。 PHP 6は正式にUnicodeがサポートされるようになります。Unicodeがサポートされる、ということは文字列型に文字列を保存すると文字列がUnicodeとして処理されることを意味します。つまり、日本語の1文字が
今回解説するWebアプリケーションのバリデーションの欠陥はPHPに限った問題ではありません。多くのプラットフォームのWebアプリケーションで見過ごされているバリデーション仕様の欠陥です。それは文字エンコーディングのチェックです。 文字エンコーディングバリデーションの必要性 筆者の知る限りでは、2004年に相次いで今まで知られていなかったアタックベクタ(攻撃経路)が見つかりました。2004年に多く見つかった新しいアタックベクタとは不正な文字エンコーディングを利用した攻撃です。不正な文字列を利用したJavaScriptインジェクションやSQLインジェクションの攻撃手法が公開されました。 文字エンコーディングを利用した攻撃自体は当時でも新しい攻撃手法ではありませんでした。文字エンコーディングを利用した攻撃は、少なくとも2000年から広く知られていた攻撃手法でした。ブラウザが文字エンコーディングを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く