タグ

ブックマーク / ockeghem.hatenablog.jp (13)

  • 私はいかにしてソフトバンク端末60機種のJavaScriptを検証したか - ockeghem's blog

    昨日のソフトバンクの非公式JavaScript対応の調査結果 | 徳丸浩の日記で報告したように、昨年5月に、ソフトバンク60機種の検証を行い、JavaScript対応の状況などを調査しました。当時はまだ公式なJavaScript対応機種はない状態でしたが、既にほとんどの端末が *非公式に* JavaScriptに対応していました。 このエントリでは、検証の様子を報告します。 なぜJavaScript対応状況を調査したか http://www.hash-c.co.jp/info/20091124.htmlを公表した前後に、とある方(この方)から、ソフトバンクのケータイでもJavaScriptが動作すると伺いました(参考のやりとり)。XMLHttpRequestも含めてJavaScrptが動くと教えていただいた932SHを私も購入して調べたところ、以下が判明しました。 確かにJavaScrip

    私はいかにしてソフトバンク端末60機種のJavaScriptを検証したか - ockeghem's blog
    mrmt
    mrmt 2012/01/01
  • 「SQLインジェクション対策」でGoogle検索して上位15記事を検証した - ockeghem's blog

    このエントリでは、ネット上で「SQLインジェクション対策」でGoogle検索した結果の上位15エントリを検証した結果を報告します。 SQLインジェクション脆弱性の対策は、既に「安全なSQLの呼び出し方」にファイナルアンサー(後述)を示していますが、まだこの文書を知らない人が多いだろうことと、やや上級者向けの文書であることから、まだ十分に実践されてはいないと思います。 この状況で、セキュリティのことをよく知らない人がSQLインジェクション対策しようとした場合の行動を予測してみると、かなりの割合の人がGoogle等で検索して対処方法を調べると思われます。そこで、以下のURLでSQLインジェクション対策方法を検索した結果の上位のエントリを検証してみようと思い立ちました。 http://www.google.co.jp/search?q=SQLインジェクション対策 どこまで調べるかですが、以前NH

    「SQLインジェクション対策」でGoogle検索して上位15記事を検証した - ockeghem's blog
    mrmt
    mrmt 2011/11/10
  • 『よくわかるPHPの教科書』のSQLインジェクション脆弱性 - ockeghem's blog

    このエントリでは、数値型の列に対するSQLインジェクションについて説明します。 以前のエントリで、たにぐちまことさんの書かれた『よくわかるPHPの教科書』の脆弱性について指摘しました。その際に、『私が見た範囲ではSQLインジェクション脆弱性はありませんでした』と書きましたが、その後PHPカンファレンス2011の講演準備をしている際に、同書を見ていてSQLインジェクション脆弱性があることに気がつきました。 脆弱性の説明 問題の箇所は同書P272のdelete.phpです。要点のみを示します。 $id = $_REQUEST['id']; // $id : 投稿ID $sql = sprintf('SELECT * FROM posts WHERE id=%d', mysql_real_escape_string($id) $record = mysql_query($sql) or die(

    『よくわかるPHPの教科書』のSQLインジェクション脆弱性 - ockeghem's blog
    mrmt
    mrmt 2011/09/27
  • 最近発覚したパスワードに関する重大な脆弱性4選 - ockeghem's blog

    最近、パスワードにまつわる重大な脆弱性を見かけることが多いように思いますので、その中から4つを選んで紹介します。既に私のブログで紹介したものや、少し古い問題も含まれます。 PHP5.3.7のcrypt関数がハッシュ値を返さない脆弱性 crypt関数は、様々なハッシュアルゴリズムによるソルト化ハッシュを返す関数ですが、PHP5.3.7(2011年8月18日リリース)において、crypt関数にMD5を指定した場合、ハッシュ値を返さない(ソルトは返す)バグがありました。私のブログエントリにて説明したように、最悪ケースでは任意のパスワードで認証できてしまう状況があり得ました。 PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439) | 徳丸浩の日記 PHP :: Bug #55439 :: crypt() returns only the salt for MD5 このバグが混入

    最近発覚したパスワードに関する重大な脆弱性4選 - ockeghem's blog
    mrmt
    mrmt 2011/08/29
  • EZwebの2011年秋冬モデル以降の変更内容とセキュリティ上の注意点 - ockeghem's blog

    au/KDDIの技術情報サイトEZfactoryには、2011年秋冬モデル以降にEZwebの仕様変更がある旨表示されています。セキュリティ上の問題の可能性もあるため以下に報告します。 EZfactoryトップページでの告知内容 EZfactoryトップページには、2011年秋冬モデルでの変更を以下のように要約しています。 ※お知らせ※ EZブラウザは、2011年秋冬モデルにて、EZサーバを含め、「機能」及び「ネットワーク環境」の見直しを行ないます。 これによる主な変更点は以下のとおりです。 <主な変更点> ・EZサーバの言語変換機能が削除され、HDMLが非サポートとなる。 ・EZブラウザ、PCサイトビューアーのIPアドレス帯域が統一される。 今後EZブラウザ向けコンテンツを作成する場合は、XHTML Basicを推奨します。 http://www.au.kddi.com/ezfactory

    EZwebの2011年秋冬モデル以降の変更内容とセキュリティ上の注意点 - ockeghem's blog
    mrmt
    mrmt 2011/06/15
  • ソーシャルボタンを導入したヨミウリ・オンラインはリンク制限を撤廃すべき - ockeghem's blog

    ヨミウリ・オンラインを閲覧していて、ふと、ソーシャルブックマークのボタンが設置されていることに気がつきました。以下に引用します。 ご覧のように、twitterやfacebookの他、はてなブックマークにワンタッチで登録できるようになっています。ソーシャルブックマークのボタンにはヘルプボタン(右端の?)があり、ヘルプページにリンクしています。 ヨミウリ・オンラインにソーシャルボタン導入 ヨミウリ・オンライン(YOL)の記事に「ソーシャルボタン」、および「携帯に送るボタン」を設置しました。ソーシャルボタンはソーシャルサービス上で記事をブックマークしたり、関心を持った記事を手軽に友人・知人と共有したりすることができます。ぜひご利用ください。 【中略】 (2010年11月15日 読売新聞) http://www.yomiuri.co.jp/info/socialbutton/ 引用部分にあるように

    mrmt
    mrmt 2011/05/12
  • 僕が「ホワイトリスト」を採用しなかった訳 - ockeghem's blog

    ホワイトリストという用語はセキュリティの分野では非常に基的な用語ですが、セキュアプログラミングという文脈では意外に曖昧な使われ方がされているように見受けます。エントリでは、ホワイトリストという用語の意味を三種類に分類し、この用語の実態に迫ります。拙著体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸)では、ホワイトリストという用語を一度も使っていませんが、その理由に対する説明でもあります。 ホワイトリストの分類 私の調査によると、ホワイトリストは以下の3種類に分類されます。 許可されたものの一覧表(第一種ホワイトリスト) セキュリティ上安全と考えられる書式(第二種ホワイトリスト) アプリケーション仕様として許可された書式(第三種ホワイトリスト) 以下順に説明します。 許可されたものの一覧表(第一種ホワイトリスト) ホワイトリストというくらいですから、来のホワイトリストは

    僕が「ホワイトリスト」を採用しなかった訳 - ockeghem's blog
    mrmt
    mrmt 2011/05/12
  • 携帯電話事業者に学ぶ「XSS対策」 - ockeghem's blog

    NTTドコモとソフトバンクモバイルは、フィーチャーフォン(いわゆるガラケー)にてJavaScriptの対応を始めています。JavaScriptに対応すると、クロスサイト・スクリプティング(XSS)脆弱性の懸念が高まりますが、両社は独自の手法によりXSS対策をしている(しようとしている)挙動が観測されましたので報告します。この内容は、オレ標準JavaScript勉強会でネタとして使ったものです。 NTTドコモに学ぶ「XSS対策」まず、サンプルとして以下のようなXSS脆弱なスクリプトを用意します。 <?php session_start(); ?> <body> こんにちは<?php echo $_GET['p']; ?>さん </body>これを以下のURLで起動すると、IE7では下図のような表示になります。 []http://example.com/xss01.php?p=山田<scrip

    携帯電話事業者に学ぶ「XSS対策」 - ockeghem's blog
    mrmt
    mrmt 2010/07/26
  • pg_sleepをSQLインジェクション検査に応用する - ockeghem's blog

    SQLインジェクションの進化形として、ブラインドSQLインジェクションという手法があります。通常のSQLインジェクションは、検索結果表示やエラー表示のところに、アプリケーションの想定とは別のテーブル・列の値を表示するものですが、ブラインドSQLインジェクションは、SQLの結果がエラーになる・ならないを1ビットの情報として悪用し、これを積み重ねることで、データベース内の任意情報を得ることができるというものです。 1ビットの情報が得る手段としては、SQLのエラー表示に限らないわけで、現実問題として、SQLのエラーが外部からは判別しにくい場合もあります。そのような場合の究極形として、時間差を利用するという手法があります。 MS SQL Serverには、waitfor delayという命令があって、時・分・秒指定でスリープさせることができます。金床には、MySQLやPostgreSQLの場合の

    pg_sleepをSQLインジェクション検査に応用する - ockeghem's blog
    mrmt
    mrmt 2009/11/05
  • i-mode2.0は前途多難 - ockeghem's blog

    既に発表されているように、NTTドコモの夏モデルからi-modeの仕様が大幅に拡張され、JavaScriptCookie、Refererに対応するようになった。これら仕様変更はセキュリティの面からも影響が大きいため、私は夏モデルの中から、P-07Aを発売開始日(5月22日)に購入した。そして、リリースどおりJavaScriptCookie、Refererが動作することを、実機にて確認した。 ところが、P-07Aと同日に発売開始されたN-06Aは、その日のうちに一時販売停止のお知らせが出る。 この度、弊社の携帯電話「N-06A」において、iモード接続時の不具合が確認されましたので、販売を一時見合わせさせていただきます。 なお、事象に伴い、日発表いたしました「N-08A」の販売開始日につきましても、5月28日から延期となります。 「N-06A」の販売再開及び「N-08A」の販売開始時期

    i-mode2.0は前途多難 - ockeghem's blog
    mrmt
    mrmt 2009/05/28
  • SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog

    以前このブログでも取り上げたことのある神戸デジタル・ラボの近藤伸明氏がThink IT上で「SQLインジェクション大全」という連載を執筆しておられる。その第三回「SQLインジェクションの対策」を読んで以下の部分が引っかかった。 バインド機構とは、あらかじめSQL文のひな型を用意し、後から変動個所(プレースホルダ)に実際の値(バインド値)を割り当ててSQL文を生成するデータベースの機能だ。バインド値はエスケープ処理した後にプレースホルダにはめ込むので、悪意あるSQL文が挿入されても、その実行を阻止することができる(図1-2)。 http://thinkit.jp/article/847/1/ たしかにエスケープ処理を使ってバインド機構を実装する場合もある。JavaMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性 | 徳丸浩の日記から派生して、MyS

    SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog
    mrmt
    mrmt 2009/02/21
  • 「\%foo」から始まる文字列を検索するクエリをハードコーディングする - ockeghem's blog

    SQLのエスケープと聞いてやってきましたよ。2008-07-10 - T.Teradaの日記から 例えば、「\%foo」から始まる文字列を検索する場合には、どのようなSQL文を書けばよいのでしょうか。 条件は以下の通りです。 1. DBMSソフトはMySQL 2. ESCAPE節は使わない 【中略】 「\%foo」から始まる文字列を検索するSQL文は、以下のようになります。 mysql> SELECT 123 FROM dual WHERE '\\%foo456' LIKE '\\\\\\%foo%'; MySQLの場合、文字列リテラルのエスケープとLIKE述語のワイルドカード(「%」、「_」)に対するエスケープの両方に「\」を使うので、こういうややこしいことになりますね。T.Teradaさんが書かれているように、以下のように考えるのがよいと思います。 LIKEに与える文字列のエスケープ処

    「\%foo」から始まる文字列を検索するクエリをハードコーディングする - ockeghem's blog
    mrmt
    mrmt 2008/07/11
    \\\\\\\\\\\\\\\\
  • hiddenのあまりにも馬鹿げた使い方 - ockeghem's blog

    これは面白い yohei-y:weblog: ステートレスとは何か では、ステートレスな場合はどうなのか。 客: こんにちは 店員: いらっしゃいませ。○○バーガーへようこそ 客: ハンバーガーセットをお願いします 店員: サイドメニューは何になさいますか? 客: ハンバーガーセットをポテトでお願いします 店員: ドリンクは何になさいますか? 客: ハンバーガーセットをポテトとジンジャーエールでお願いします 店員: +50円でドリンクをLサイズにできますがいかがですか? 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします 店員: 以上でよろしいですか? 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします。以上 店員: かしこまりました 引用元には明記されていないが、客の延々とした繰り返し部分は、ホストからhiddenフィールドで渡されてきたものを返し

    hiddenのあまりにも馬鹿げた使い方 - ockeghem's blog
    mrmt
    mrmt 2007/11/05
  • 1