ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

XMLファイルの読み込み書き込み

2009-07-21 20:08:58 | Weblog

意外とJavaでのXMLファイルの読み込みと書き込みについて、はっきりと書いてあるところがないので、書いておいて見る。

読んだファイル(a.xml)を、そのまま(b.xmlに)書き出す。
プログラムを見やすくするために、例外をthrowsしちゃってます(try-catchしないで)

import java.io.*;

import javax.xml.parsers.*;

import org.w3c.dom.*;

import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

public class Samle1 {
	public static void main(String[] args) throws Exception {

		//	読み込み
		DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = dbfactory.newDocumentBuilder();
		Document xtree = builder.parse(new FileInputStream("a.xml"));

		//	書き出し
		DOMSource source= new DOMSource(xtree); 
		StreamResult result = new StreamResult(new FileOutputStream("b.xml")); 
		TransformerFactory transFactory	= TransformerFactory.newInstance(); 
		Transformer transformer	= transFactory.newTransformer(); 
		transformer.transform(source, result); 
	}
}




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

XP,Vistaのセキュリティツール

2009-07-20 20:15:22 | Weblog

17日のSANS Future Visions 2009 Tokyoで、午後のセッションで
XP,Vistaのセキュリティツールについてあげていたので、メモメモ

Vista用
 MS OneCare,Spybot,NoScript,sandboxie

XP用
 シマンテック2008,spybot,TeaTimer,Noscript,sandboxie,regclean

ホワイトリスト
 BIT9

そのほか・・・
 secunia,Paros,
 http://www.jasons-toolbox.com/browsersecurity/

あと、ルーメンション?って書いてあるんだけど、なんだったっけ?

ブラウザ=世界へ向けてのポータル

は、意味わかるけど、

「クロスブラウザ脆弱性」
って、書いておきながら、なんだったかわすれた。
IEとFirefoxと2つ使っている人が、一方のブラウザでOKで、他方でやばいやつだっけ???

あと、
「銀行引き落としなどは、ひとつのタブブラウザで操作すること
 ほかのタブからも操作できる」
ってかいてある。うん、こんなはなしは聞いた気がする・・・



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「プログラム100%自動生成可能」の論理的根拠-その1

2009-07-19 12:35:11 | Weblog

 日経コンピューター2009年7月22日号特集

 「もっと速く作れる 20社に見る新開発手法」

 において、「100%自動生成可能」という話が出てきているが、
事例がでているだけで、どうしてそのようなことができるのかの
論理的根拠がないとおもう。

 それって、ボツになった修士論文のなかで説明しているので、
 ちょっと2回にわけてかいてみる。




 まず、プログラムを書くためには、何が必要かを考える。

 例として、Hello Worldをあげる。

 これをプログラムで書くには・・・

 入力-処理-出力はわかっている。

 入力データ:なし
 処理:出力する
 出力データ:Hello World

 でも、これだけでは書けない。ファイルに書き出すのか?コンソールに出すのかわからない。出力媒体、入力媒体がわかってはじめて

 入力データ:なし
 処理:出力する
 出力データ:Hello World(コンソール)
 ()が媒体
class test
{
  public static void main(String[] args)
  {

     System.out.println("Hello World");
 }
}




と書ける。




では、逆に、入出力とメディアと処理が決まっていたら、プログラムは書けるのか?
と考える。

 このとき、
 (1)入出力メディアごとに、関数、ライブラリ、クラスなどなどがあったとする。
     そのとき、メディアごとに必要になる値(ファイル=ファイル名など)
     も入力されるとする。
 (2)そして処理は、固定的にいくつか用意されていて
    (値転送、部分文字列、四則演算、ソートなどなど)、
 (3)出力データは、その処理方法を組み合わせることによって得られる

とすると。。。
プログラムは、
 (あ)入力データをメディアごとに入力
 (い)出力するための処理を選び出し、
    入力データを適用して出力データを作り
 (う)出力データをメディアごとに出力

となるが、
 (あ)は(1)から該当する入力メディアを検索、取りだして、データを適用
 (い)は(2)から該当する処理を検索、取りだして、データを適用
 (う)は(3)から該当する出力メディアを検索、取りだして、データを適用

ということは、(1)、(2)、(3)をRDBにいれ、順番に取り出して、検索適用すると・・・

 この自動生成は結局、RDBからライブラリを検索、それを処理加工するだけの話になる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

20 Critical Security Controls

2009-07-19 00:15:16 | Weblog

 17日のSANS Future Visions 2009 Tokyoの話まとめ。
 その1 アランパーカー氏2日目の講演

2つの法律・規制のはなし
(1)US FISMA(フィズマ):報告書はできたけど・・・
(2)PCI:カード会社のきまり

5つの取り組み
(1)アプリケーションのセキュリティ
 →プログラマは、どーしてセキュアなコードを書けないか?
  ・サンプルプログラムは模範例:簡単なものしかない
  ・セキュアなプログラムのコードの書き方は、知っている
     ・・・けど書けない
 →Webアプリケーションをよりセキュアにするには?5つ
  1.アプリケーションセキュリティファイヤーウォール
  2.アプリケーションセキュリティスキャナ
  3.ソースコードアナライズ&バイナリスキャン
  4.アプリケーションペネトレーションテスト
     ペネトレーションテスト=ペンテスト
  5.プログラマのセキュリティスキルの評価
     外部の人のほうがやりやすい(契約で規定できるから)
 →境界を守ってもダメ:内部に・・・
  出ていくトラフィックチェック

(2)人センサーネットワーク
 エネルギー省:シスアドがちょっとしたエラーを見つけ、報告する

(3)人材発掘
 中国の例
 アメリカの場合
 見つける→サイバーキャンプ→奨学金

(4)攻撃を理解している人が担当する
  Consensus Audit ガイダンス(CAG)
  実例に基づいた、コントロールに対するコンセンサス

(5)調達の考え方をかえる
  初期設定のまま→ねらわれやすい
  アメリカでは、Windowsをセキュアコンフィグレーションに換えた

で、このはなしのどこかにたしか、
20 Critical Security Controls
http://www.sans.org/cag/

が出てきた気がする。URLからして、CAGのところかな?

あと、その辺の話で、John Gilligan氏がでてきた。すごいひとらしい。

とにかく、アメリカは、最近、サイバー戦略について変わっていて、それが現在進行形らしい。

P.S 発表とは関係ないけど、これを書いているときに、いろいろ検索したら、
こんなのヒットしたので、メモメモ。。。
Cyberspace Policy Review
http://www.whitehouse.gov/assets/documents/Cyberspace_Policy_Review_final.pdf



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「セキュアなコードの書き方を知っていても、書かない」-やっぱアスペクト指向とかっすかね?

2009-07-17 20:47:35 | Weblog


今日、SANS Future Visions 2009 Tokyoで出てきたお話で、
教育もあまり役に立ってないっていう件で、

・セキュアなプログラムのコードの書き方は、知っている。
・でも実際には書いていない

っていう話があったけど、まーねー




たとえば、Cで文字領域を取ったりするとき
char *get_string_area(int len)
{
   return (char *)malloc(len*2+1);
}



みたいなことをやってしまうことがある。
これは、セキュアではない(lenに、もしなんかのはずみで
マイナスを入れられると、エリアがとれず・・・)

セキュアなコーディングにする場合、lenはintじゃなくって、
size_tなり、unsignedにすべきなんだけど、
プログラム上、そーすると、めんどっちいケースがあって、
また、文脈上、絶対マイナスこねーよ!みたいなときは、
intにしちゃう。

みたいなケース。




ただ、求められるセキュリティレベルや、危険性などによっても違うわけで、
たとえば、テスト用のプログラムや、研究の論文を書くとき用、
ツール自動生成用などなら、上記の書き方でぜんぜんOKなわけだ。
それを、ほかにもっていくと、問題が起こる。




とすると、
・抽象的に記述しておいて(図など?)あとで、環境に応じて、セキュリティを考慮した
 ライブラリや関数を選んで、ソースを自動生成するとか

・アスペクト指向のように、プログラミング後、セキュリティが必要なら、
 セキュリティ部分を後付する

とかしたほうが、現実的なのかしら?


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PCIDSS

2009-07-17 15:23:09 | Weblog

後で書き直すけど、わすれないようにのめも
きのうのSANS Future Visions 2009 Tokyoの次の人の話。

PCIDSSは、カード会社のセキュリティ基
各カード会社はこの基準を守るためのプログラムがある(どれかをやれば、PCIDSSを満たすので十分)

ISMSと一緒にとったりすることも


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アメリカのリアル、サイバーコマンド?

2009-07-17 12:22:12 | Weblog

そのきのうのSANS Future Visions 2009 Tokyoではじめのスピーカーの人アラン パーラー氏がいってたことのつづき。

アメリカで(ゲームではなく)サイバーコマンドというのができたそうな
Pentagon approves creation of cyber command
http://jp.reuters.com/article/topNews/idUSTRE55M78920090624

サイバー軍?

アメリカは、セキュリティ関係で採用される人も、いままでは、いろいろいうコンサルタントとか監査をする人、ツールを使う人から、実際に攻撃の手口を知っていたり、ツールの範囲外の分析、対策ができるディープ、アナリストにかわったきてるらしい。

 あと、今後注目する人(議員?)として、ロッカフェラー(ときこえた、ロックフェラー?)とリーバーマンと言っていたんだけど、だれなんだか、よくわからない(コマースとインテリジェンスに関する人らしい)。聞き間違い??



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Dos,DDos攻撃って、クラウドな今になっては、意味ない攻撃?

2009-07-16 23:36:03 | Weblog

前にも書いた、SANS Future Visions 2009 Tokyoの話。そのはじめのスピーカーの質問コーナーで、この前の、韓国、アメリカを狙ったサイバーテロについての質問があった。

 で、その質問に対するスピーカーの答えなのだが、この前の攻撃は低レベルな攻撃であり、アメリカに対しては、対策をしていないサイトに対しては問題が起きたが、対策をしていたところは大丈夫だったらしい。

 つまり、エストニアがまず初めに攻撃を受け、次にグルジアでも攻撃をうけ、マスコミは、ほかの国も?と思っていたら、起きたので、「ほれみろ!」みたいな感じで書いているけど、実は、アメリカとかは、akamai(アカマイ)とかで、主要なところは分散させていたので、問題はなく、対策を立てていなかったところが問題になったようだ。

 ここでの教訓は2つで、1つは、政府機関であれば、かならず、分散させよ
もう一つは、インテリジェントなトランザクション攻撃をされると、やばい!ってことらしい。


・・・ってことは、akamaiができた今となっては、Dos,DDos攻撃って、意味ない攻撃?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アナだらけのアプリを書いたからって訴えられたら、訴訟絶えないよね(^^;)

2009-07-16 20:48:35 | Weblog

今日、SANS Future Visions2009行ってきたんだけど、
はじめのスピーチの人が行っていた話。

サイバー訴訟っていうのが、アメリカではある???のかしら??

アプリが、セキュリティ的に穴だらけ(>_<!)
というので、アプリ開発者を訴える

というはなしだそうなんだけど(聞き間違いかなあ・・・)

もし、そんなの、日本であったら、訴訟絶えないよね(^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

UML等各種ダイアグラムのエラーチェック体系化(その12:ダイアグラムをグラフ理論化-3)

2009-07-15 17:03:47 | Weblog

 ひさびさに、シリーズ「UML等各種ダイアグラムのエラーチェック体系化」です。

現在「いろんなダイアグラムをRDBにいれよう!」化計画、
 をやっていて、そのため、ダイアグラムの構成要素を、ノード、リレーション(エッジ)、属性、属性値に分けようとしています。

 前々回、構成要素単独で意味をなすもの:ノードをやり
 前回、 構成要素単独で意味をなさないもの
       2つ以上のものと結びつく:リレーション(エッジ)

 今回は、1つのものと結びつく:属性について行います。

 なお、今までの話は、ここにまとめてあります。




■ノードにむすびつくもの-属性値

 あるノードの説明になっているものが、属性値です。
 ノードの説明は、引き出し線が引っ張ってあって、そこに書いてあることもあるけど、
 たいてい(ノードの上にノードに書くと、結びつきがあったように)
 ノードの上とか横に説明を書いて、それが属性値になる場合が多いです。

 ノードの名前とか。。。

 この場合、ノードの説明は、文字で書かれているものだけでなくって、
 ノードの形で、種類が示してあるもの(たとえば、業務流れ図で、帳票の形とか、
 楽譜で、四分休符とか、八分音符の形とか)も属性値になるし、
 位置座標なども、属性値になります




■リレーションにも属性値がある
 そして、リレーションにも属性値があります。
 線の上に書いたりしますよね。

 DFDでデータフローのところに、データを書いたり
 流れ図の分岐で、何の場合というので、書いたりとか。。。

 ああいうのが、属性値になります。
 リレーションの場合、位置座標は関係ないようなケースでは、
 属性値がないこともあります(線で結ばれているだけなど)




■属性値と属性

 属性値は、なんらかの意味、意義を持っています。
 もってないで、書いてあったら落書き、いたずら書きです。
 なにか、意味合いがあるわけです。

 たとえば、帳票のマークのところに、「受注票」と書いてあったら、それは
帳票名という意味です。

 このように、属性値に対する、なんらかの意味、意義を「属性」とします。

 なお、属性は1つなのに、属性値がたくさんということもあります。

 ER図に、項目名を書く場合、項目名(ID,氏名、住所・・・)はいろんなものがあります。
 項目名という属性1つに対して、値いっぱいなわけです。




ということで、ひととおり「ダイアグラムの構成要素」を説明しました。
次回は、ここまでのまとめです。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

きのうのP≠NP問題の話

2009-07-15 13:15:21 | Weblog

で、きのうのP≠NP問題の話。大勘違いしてるかもしれないけど。。。(してたら、ごめん)
結局P,NPって、ある事象(項や要素、桁もあるけど)と次の事象が、
       1つに決まる場合が、P
       複数ありえる場合が、NP
ということ*は、その前とか、もっと前とかについては、考えてない??

循環するっていうのは、前の事象と次の事象は無関係のように思えているけど、ある程度はなれたところの事象と比べると、関係がある(独立ではない)というもの。

*=循環しないとは言ってない・・・もし、なんらかの関連性があると、解ける可能性がある??

ところで*って、マルコフ連鎖?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

画面設計書は2つの部分に大きく分かれる

2009-07-14 17:57:19 | Weblog

 画面設計書の見本・書き方などは、発注者ビューガイドラインの画面編などに書かれている。しかし、画面の意義から、画面設計書の書き方を唱えないために、一般的に書き方が、ぼやけていると思われる。

 画面には、まったく違う2つの大きな意義がある。

1つは、データ入出力としての意義で、これは、データを入れたり、表示したりするところである。
   主に、テキストボックス、ラジオボタン、チェックボタン、リストなどで実現する

もうひとつは、イベントの起動を行うことで、
 これは、ボタンや場合によってはリストの項目値の変化、キークリックなどによって実現する。


 このようにまったく違う2つのものが混在していて、それぞれ、必要な情報が違う。
 なので、画面設計書も、この2つのものを分けて書かないと、とても書きにくくなる。




■データ入出力としての意義部分の書き方

 これは、レイアウトを示し、そこに項目番号を振って、各項目ごとに

  ・名称
  ・型(整数、文字などなど)
  ・項目の意味
  ・値の範囲の制約があれば

などをかく。つまり、ファイルやDBの項目説明と似たような感じになる
(違いは、レイアウトがついているくらい)




■イベントの起動を行うところ

 一方、イベントのところは

  ・何を(例:ボタンを)
  ・どうすると(例:クリックすると)
  ・どうなるのか(例:サーバーのABCサービスが起動)

 のような形で記載することになる。値の範囲などは、書きようがない。
 なので、こちらは、上記のデータ入出力と分けて書いたほうが、書きやすい




 この2つの役割の違いをはっきり意識して書かないため、なんとなーくぼんやりした画面設計書になってしまうことがある。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「次期オフィス、ネットで無償提供へ」(@_@!)

2009-07-14 13:13:54 | Weblog

おお、ただになるの、ワードとか、エクセルとか(@_@!)

ここのニュース
次期オフィス、ネットで無償提供へ=来年簡易版でグーグルに対抗
http://headlines.yahoo.co.jp/hl?a=20090714-00000032-jij-int

(以下斜体は上記サイトより引用)


米マイクロソフトは13日、文書作成や表計算などができる統合ビジネスソフト「オフィス」の次期製品について、簡易版をインターネットを経由し無償提供する計画を発表した。グーグルやIBMなど競合他社がネット提供型ソフトを拡充していることに対抗し、2007年秋に始めた各種ソフトの無償サービス「ウィンドウズ・ライブ」を通じて提供、利用者を囲い込む戦略だ。
 次期版「オフィス2010」は来年前半に供給開始を予定。新サービスは、文書作成の「ワード」や表計算「エクセル」などの各種ソフトについて、「オフィス」が組み込まれていない外出先などのパソコンでも、無料会員登録するなどの形で、ネット経由で簡易版を利用できるようにする。


ほお。。。


ただ、オフィスの全機能を活用するためには、従来通りPC組み込み版に、日本円で2万円程度を支払うか、パッケージソフトを約3~4万円で新規購入する必要がある。

パソコンに入るのは、ただの簡易版のほう?それとも2万円のほう?
簡易版のほうなら、パソコンの値段も下がるとか、あるのかなあ・・・??

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

P≠NPのNPって、本当に計算難しいの?

2009-07-14 11:30:49 | Weblog

 素朴な疑問。思いつきなんで、たぶん、間違ってると思うけど・・・

 まず、P≠NPのPとは、判定問題のうち、ある決定性チューリング機械によって多項式時間で解かれるものの全体(Wikipediaより引用)、つまり言い換えると、これがきたら、つぎにやるのはこれ、と(決定的に)決まっている状態で、対象が増えれば、処理時間が増えていくもの。つまり、シリアル処理ですな(いや、シリアルって、たべものじゃないよ、シスコみたいな・・って、なおさら混乱しそうだ ^^;)

 それに対して、NPは、非決定性チューリングマシンによって多項式時間で解くことができる問題なんだけど、出てきた答えは、本当に正しいかどうかを多項式時間で判定できる問題。ここで、 「非決定性チューリングマシン」っていうのは、あるものがあると、これとこれとこれ・・・みたいに、1つにはきまらないもの。結果として、パラレル処理みたいに広がっていく。ツリーみたいな感じで、ひろがるよね。だけど、つりーって、広がっていくほうから見れば、どんどん広がってるけど、一番下の葉の部分をひとつ決めてしまえば、それをたどっていくのは簡単(本当に正しいかどうかを多項式時間で判定できる問題)




 で、たしかにNPは、ツリーみたいに広がっていくとすると、ねずみ算みたいな感じで、ひろがっていくから、難しいってことは、わかるのよ。

 でもねでもね、途中で循環しちゃうってことはないの?

 素因数分解とか、なんか、循環したのを応用したら・・・と思ったら、ポラード・ロー素因数分解法というのは、フロイドの循環検出法というのを使ってるらしいけど、なんか関係あるのかな??





ま、そんなこと、どーでもいいや(^^;)

おしごとおしごと・・・



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

検索エンジンがRSSを作ってくれたら、いいとおもう・・・

2009-07-13 15:27:12 | Weblog

 RSSって、各ブログなどが送るようになっている。
 でも、そうすると、あるサイトが更新された情報を、RSSで受け取りたいと思っても、
 そのサイトがRSSに対応してくれなければ、無理。
 で、ブログはRSSに対応してるけど、普通のサイトは、たいてい対応していないので、
 普通のサイトが更新されたたびにRSSで見るってことは。。。




 そこで、思うのだが、検索エンジンって、ある一定期間で、サイトをクロールしているのだから、

  たとえば、ウィリアムのいたずらが、Googleとかに、
   「このサイトが更新されたら、RSSで知らせてね!」と登録しておくと、

   Googleが、そのサイトをクロールしたときに、前から更新されていれば、
   「更新されたよ!」というRSSを、(Googleが)作成して

  そのGoogleが作成したRSSをウィリアムのいたずらなど、登録した人がみる

 ってかたちにすると、更新された情報をRSSで受け取れるし、Googleとかの検索エンジン会社も
そのRSSに広告入れられて、いいと思うんだけど。。。

 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする