サンデープログラマー
パソコンにまつわるいろいろ
カレンダー
<< 2013年9月 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

最新の記事

最新のコメント

カテゴリ

過去の記事一覧


2013年9月の記事一覧


 23件中1~20件表示  次のページ

 さて、ApacheとASP.NETの問題は、自分なりに結論を見出した。要は、ApacheとIISをポートを変え併存させるのが良いと言う事になった。なまじ未完成なモジュールをインストールして、どうにもならないバグに悩むよりは、安全を優先させる方が良いとなる。

 後は、具体的に何がしたいのか、どんな機能ページを作りたいのか、それによって使い方が変わってくるのだろうと思われる。

 ApacheとASP.NET問題が、ここで一段落したので、サンデープログラマーとして、次に挑戦すべき課題を決めたい。

 考えを巡らすと、来年には、WindowsXPがサポートを打ち切られる。予想されるのは、使わなくなったXPがあふれると言う事だ。一つは、ハードの問題。2つ目は、セキュリティの問題だろう。そこで、その状況を先取りして、そうしたXPのハードにLinuxをインストールしてみよう。しかも、Linuxをインストールして、有効利用を考えるだけではなく、サーバーとしての活用も考えたい。

 サーバにこだわるのは、折角言論の自由な国に生まれたのだ。いろいろな意見が有るでしょう。そうした意見を言いたければ言う。言いたい事は遠慮なく言う。そんな事をして欲しいと思うからだ。

 投稿すればやがて分かるが、尖った意見は、削除される。本当にこの国には、言論の自由が有るのかと疑いたくなる。真偽が分からぬが、その原因は、検閲を時間帯によって人件費の安い隣国で行っているからだとも言われる。だが、隣国に関連する事で有ろうが、自国の事であろうが、自分の意見をそう言う事に左右されずに、自己主張の場を、自ら持つ人が増えて欲しいと思う。

 プロバイダーに高い料金を払い、幾つかのメールと他人が作ったホームページの閲覧だけでは、もったいない。自ら、意見や情報の発信源として、意見を述べる事で、より良き社会の実現に貢献して欲しい。そう思うからだ。

周りを見回すと、僕の周辺には、1台、2台、3台と結構あるね。これらを順次Linux化してみよう。

posted by おやじ at 2013/09/30 08:23
コメント(0)  トラックバック(0)

 だんだん分かってきた。IISもどうやら、9月26日のブログと、28日のアプリケーションプールの設定を間違えなければ、とりあえず使えそうだ。ポイントは、意外と少なく単純だ。

 それに、データベースへのアクセスも、27日の内容の通り、sqlDataSourceを使えば、接続に問題はなさそうだ。これも、単純だ。ここまでの所、分かってしまうと習うより慣れろの範疇だった。IISが分かりづらいのは、クリックしないと肝心な物が出てこない所だな。

 と言う事で、もっと便利にデータベースを使おうと言う事になる。と来れば、データベースと仲が良いのは、GridViewの様だ。何せ、Visual Basic の教科書には、必ずこれが出て来る。だが、初めは簡単だが、いざ、本気で使おうとなると、面倒だよともある。その理由は、複数行のTextなどの表示問題だ。その点簡単なのが、ListViewと言われる。

 そこで、コントロールのListViewを見てみよう。データベースの確認で作ったページに、ListViewコントロールを追加する。ListViewのデータソースの選択で、sqlDataSource1を選択して、データソースの構成でやり取りの準備をする。ORDER BYでは、データの取り出した時の並びを決め、詳細設定で、INSERT,UPDATE,DELETEなどのやり取りを選択する。ListViewの構成で見てくれを決める。当然、オプションは、すべてチェックだ。

 デバッグをスタートする。データの修正、アップデートが実に簡単だ。戻って、見てくれも、変えてみると良い。マルチラインも試してみると良い。いろいろ試すと、これで十分ではないかと思える。

 ついでに、GridViewも試そう。同様に、データソースの選択で、sqlDataSource1を選択して、データソースの構成でやり取りの準備をする。方法は、同じだ。どれも同じだね。

 これなら、データベースを扱うのに、難しさが無くなるね。

 ListViewもGridViewもデータの確認には、都合が良い。だが、これをそのままユーザーの初めての入力画面としては、問題が有るね。現実には、これとは別に入力画面を作る事になるのだろう。ListViewもGridViewも、そうして出来たデータベースの確認や修正用だね。

 結局、Apacheの環境下で無理やりASP.NETを使うよりは、IISをポートを変えて使う方が応用が広い。ソースをプリコンパイルした物を走らせる事が出来る。そう言う結論かな。

posted by おやじ at 2013/09/29 07:46
コメント(0)  トラックバック(0)

 ASP.NETでデータベースを使うのは、PHPや他言語と手続きが違うので戸惑うが、結局同じ事をやっている事が分かれば、なんていう事はない。むしろ、細かなコーディングが無くても良い、実に簡単だ。「"」だとか、「,」だとか、その数が合わないとか、見ても、一見訳の分からない文字列を書かなくて良い点は評価できる。

 昨日作ったデータベースのデモプログラムを使って、確認しよう。まず、Web Developer 2010 Express 上では、ちゃんと動作する事が確認できた。これを一応、あきらめたApache環境下のMod_AspDotNet上にコピーする。動作を確認するが、やはり、データベースで引っ掛かりあえなくギブアップだな。もしかしたら、PHPの様に、接続コードを自分で用意すれば、出来るかも知れないが、プリコンパイルが出来なければ、大事なページは作れない。取りあえず、あきらめよう。

 次に、ポート8080で設定したIISで動作を確認する。web.config のデバッグ行を消す。で、動作確認だが、あれ、エラーメッセージだ。長いメッセージの中に「..への書き込みアクセスが与えられていません。」とある。そこから察するに権限とかセキュリティーの問題ですか。と言う事で、ネットをググると、Apacheと違って、数が少ない。マイクロソフトのIISでは、このセキュリティーが実に分かりづらい。千差万別と言って良い位の組み合わせが有りそうだが、結局、Express版では、使えるのは、限定されるようだ。

 IISマネジャーを起動させたまま、右側の操作から、アクセス許可の編集を開き、ネットに書いてある事を一つづつ試す。だが、状況は変わらない。つまり、セキュリティーではなさそうだ。こうした所が、IISを敬遠する一つなんだよね。

 「It works!」と言う簡単なhtmlを用意してアクセスすると動作する。と言う事は、権限やセキュリティではないと考える。そこで、試行錯誤が始まる。アプリケーションプールをクリックすると、名前にサイトが並ぶ。該当するサイトを選択して、右側のアプリケーションの表示をクリックする。仮想パス、物理パス、サイト、次のアプリケーションプールは、これで良いのかなと、疑問が湧く。

 大体、アプリケーションプールってなんだっけと訳が分からなくなる。再確認すれば、「サーバーでマネージ コードに対する要求がどのように処理されるかを決定します。」と有る訳だ。と来れば、その場で右クリックだ。アプリケーションプールの変更を選択し、リストからASP.NET v4.0 を選択する。つまり、こいつにコードを処理してもらうと言う意味になる。当然と言えば、当然だが、分からないよね。

 Explorerを立ち上げ、確認する。やっと起動した。

 IISの設定は、実に分かりづらい。Apacheは、なんだかんだ言っても、httpd.confファイルをいじれば、大方済んでしまう。それに倣えば、いっその事、大きな表に区分を付けて、一枚ですべてが済むようにしてくれないかな。こっちをつつくと、こう変わるなんて、実に分かりづらいね。

posted by おやじ at 2013/09/28 07:25
コメント(0)  トラックバック(0)

 IISをポート8080で使う。機能ページは、ASP.NETで対応すと言う方針を決めよう。となると、いろいろ失敗続きのデータベースのお出ましだ。データベースを使う簡単なデモプログラムを作るとことから始めよう。

①空のホルダーを準備する。②Web Developer 2010 Expressを立ち上げ、「新しいWebサイト」を選択、ASP.NET空のWebサイトを選択して、参照で、空のホルダーを指定して、OKをクリックする。③メニューのWebサイト、新しい項目の追加、Webフォームを選択する。④デザインタブを開き、ツールメニューから、SqlDataSource、Calendar、Label、textbox1、textbox2を適当に配置しよう。textbox2は、TextModeでMultiLineにしておこう。それにコマンドボタンを2つ。

 右の⑤ソリューションエクスプローラのプロジェクトの所を右クリックして、新しい項目の追加、SQL Server データベースを選択し、追加をクリック。Database.mdfが追加される。⑥テーブルを右クリック、新しいテーブルの追加で、date,datetime,主キー、title,nvarchar(50),Null, sentence,nvarchar(MAX),Null.などとデータベースを構築する。入力したら、それをテーブル名を付けて保管する。

 ⑦デザイン画面に戻り、SqlDataSourceをクリック、「>」をクリックして、データソースの構成を選択。接続は、先程のDatabase.mdfを選択。次へ、ConnectionStringも次へ。まず、WHEREから、これは、読み取りの話だから、列は、dateを選択。演算子は、その日の意味で「=」を選択、ソースは、何にしましょうか。取りあえず、Control、つまり、ここでは、コントロールアイコンだね。右を見て、コントロールIDにLabel1を選びましょう。最後に追加、OK。次は、ORDER BYをクリック、dateを選んでOK。その次は、詳細設定をクリック。書き込みなどの設定だ。と言う事で、INSERT,...をチェック。完了。

 ⑧書き込みから行きましょう。SqlDataSourceをクリックして、プロパティのInsertQueryを展開する。dateで、パタメータソースは、Control、Control IDには、Label1を選択。titleに移り、同様に、Control、Textbox1、sentenceは、TextBox2を選択する。OKで終わり。

 ⑨実行のコードを記入しましょう。まず、カレンダーをダブルクリック。そこに、Label1.Text = Calendar1.SelectedDate.ToString("yyyy/MM/dd")を記入。次は、コマンドボタンをダブルクリック。そこにSqlDataSource1.Insert()を記入。おわり。実行ボタンをクリックして動作を確認しましょう。まず、カレンダーで日付を選択。テストデータを記入し、コマンドボタンをクリック。エラーが出なければ成功。

 ⑩次は、読み出し。もう一つのコマンドボタンを読み出しボタンとして、そこにコードを書きましょう。これは、ネットに例が有りました。

        Dim arguments = New DataSourceSelectArguments()
        Dim dtView = Me.SqlDataSource1.Select(arguments)

        '結果を取得
        For Each dtRowView In dtView
            TextBox1.Text = dtRowView("title")
            TextBox2.Text = dtRowView("sentence")
        Next

 主キーは、日付けなので同じ日付けでは、書き込めません。動作の確認なので、SQLインジェクション攻撃やページのポストバックなどは、全く考慮に入れていません。ここで分かった事は、当然でしょうが、ASP.NETでは、データベースが、結構簡単に使えると言う事が分かりました。

posted by おやじ at 2013/09/27 06:32
コメント(0)  トラックバック(0)

 Apache環境下で、.aspxを実行する事は、結局、まだ時期尚早の様だ。そこで、ApacheとIISを同じサーバーで走らせる方法で、対応を考えたい。

 両方のソフトが、同じポートを使う訳には、行かないので、Apacheがポート80を取り、IISが、ポート8080を使う事にする。機能ページが必要なときには、IIS管理下の.aspxページで対応する、そんな考え方だ。

 IISの導入では、何をインストールすべきか、ちょっとだけ迷う。一応次のようにした。

 FTPサービス、IIS管理コンソール、HTTPエラー、HTTPリダイレクト、ディレクトリーの参照、既定のドキュメント、静的コンテンツ、.NET拡張機能、ASP.NET、CGI、ISAPIフィルター、ISAPI拡張機能、基本認証、要求のフィルタリング、とした。追加は、必要に応じて後からでも可能だ。

 Apacheを一旦切った状態で管理ツールからインターネットインフォメーションサービス(以下IISマネージャー)を起動する。Cドライブを開き、inetpub、wwwrootと進み、そこにweb01などのホルダーを作って置く。IISマネージャーの左にある接続から、サイトを右クリックで、Webサイトの追加で、web01を追加する。

 web01をポート8080にするのは、右の操作のバインドで行う。また、web01をルートにするには、基本設定で、物理パスを設定すれば、良い。

 IISがポート80を解放した事を確認して、Apacheを起動する。web01に、index.htmlのファイル名で、下記内容で確認する。
<html><body><h1>It works!</h1></body></html>
 この状態が作れれば、併存は可能だ。
 動作確認は、http://localhost:8080/index.html だ。

 結局、IISを使わざるを得ないと言うのが、悩ましい。IISは、良く分からないんだよね、設定が。そこで、今回を機に、一つづつ確認だな。

posted by おやじ at 2013/09/26 08:02
コメント(1)  トラックバック(0)

 Apacheの環境下で、ASP.NETをまともに動かす事を目標に、試行錯誤を続けているが、いよいよ、うまく行くのか、ダメなのか結論を出す時が来た。

 簡単におさらいをしよう。①ApacheにMod_AspDotNetをインストールして、.aspxファイルが使えた。②.aspxのデザインには、コピペを使い、CSSを導入する事で、ASPの持つ機能と優れたデザインの両立が可能だ。③データベースには、ADO.NET driver for MySQL をインストールする事で使える。所が、④データベースを加えると、Apache環境下では、動作しない問題に遭遇。

 そこで、事前に.aspxファイルをコンパイルして置けば、良いのでは無いかと、その疑問を試す事になる。

 所が、Web Developer 2010 Expressには、その肝心なコンパイラーが見当たらない。ネットをググると、aspnet_Compiler.exe をMS-DOS環境のコマンドで操作する事で出来る様だ。その説明がここに有った。

 説明と違う所は、Windows7の場合、プログラムの場所が移動している。その場所は、C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe となる。お勧めの方法は、まず、

①Dドライブに、例題と同じホルダーを準備する。一つは、D:\Inetpub\wwwroot\PreCompile で、ここにソースを配置する。今一つは、d:\PreCompile で、ここにコンパイル後のファイルが配置される。

②コマンドプロンプトを開き、上記場所に移動する。aspnet_compiler -v PreCompile -p D:\Inetpub\wwwroot\PreCompile d:\PreCompile をクリップボードにコピーして、コマンドプロンプトに右クリックで貼り付け、実行。

③出来た、ファイルを目的のホルダーにコピーする。

 キーボードを叩くのも良いが、きっと間違える。だからやになる前に上記の操作をお勧めする。

 結果は、ダメでしたね。Apacheの環境下では、やはり無理のようだ。何もMySQLを使ったデータベースが有るからではない。そもそもダメだった。意味不明の文字が表示されるだけだった。だが、このコンパイラーは、IISでは、立派に使える。実際に、.aspxを公開するとなると、コードが表示される危険を無くす目的で、コンパイルは必要な作業になるだろう。

 これも収穫の一つとすべきだ。

 Apacheが動作する環境で、.aspx使うには、Mod_AspDotNetを導入するのか、IISをポートを変えて導入するのか、2つの方法が有ると書いたが、その一つは、あえなくつぶれた。

 次は、IISをポートを変えて、試す事をやって見たい。

posted by おやじ at 2013/09/25 08:15
コメント(0)  トラックバック(0)

 目的を再確認しておこう。Apacheの環境下で、asp.netを使う事だ。そのデータベースに、SQL Server 2008 R2 を新たにインストールしたら、Apacheが起動しないなどの失敗をした。そこで、MySQLを試す事になる。

 昨日のダウンロード先から、ADO.NET Driver for MySQLをダウンロードする。これも再確認だが、会員登録する必要はない。ダウンロードしたファイルは、難なくインストールが完了する。さっそく、動作を確認するため、MySQLにコマンドプロンプトでデータベースを作成する。
> create database vbnet; として見た。
> use vbnet;
> create table books(id int primary key, title varchar(40) not null, ...);

 てな具合で、データベースを作る。データは、まだ空だ。

 Web Developer を起動して、ソリューションエクスプローラを右クリック、参照の追加、.NETタブ、MySql.Dataを選択してOKをクリック、これでMySql.Data.Dllが有効になる。

 コードを書く。まず、

Imports MySql.Data.MySqlClient

 コマンドボタンを適当に置き、そこにコードを書く。例が有ったので、それを利用する。まずは、読み込み。

        Dim Connection As New MySql.Data.MySqlClient.MySqlConnection
        Dim Command As MySql.Data.MySqlClient.MySqlCommand
        Dim DataReader As MySql.Data.MySqlClient.MySqlDataReader

        '接続文字列を設定
        Connection.ConnectionString = "Database=vbnet;Data Source=localhost;User Id=root;Password=yourpassword"

        'オープン
        Connection.Open()

        'コマンド作成
        Command = Connection.CreateCommand

        'SQL作成
        Command.CommandText = "SELECT id, title, author, publisher, price, pub_date FROM books;"

        'データリーダーにデータ取得
        DataReader = Command.ExecuteReader

        'データを全件出力
        Do Until Not DataReader.Read
            Label7.Text = DataReader.Item("id").ToString
            Label8.Text = DataReader.Item("title").ToString
            Label9.Text = DataReader.Item("author").ToString
            Label10.Text = DataReader.Item("publisher").ToString
            Label11.Text = DataReader.Item("price").ToString
            Label12.Text = DataReader.Item("pub_date").ToString
        Loop

        '破棄
        DataReader.Close()
        Command.Dispose()
        Connection.Close()
        Connection.Dispose()

 次は、書き込み
        Dim Connection As New MySqlConnection
        Dim Command As MySqlCommand
        Dim DataReader As MySqlDataReader
        Dim dt_id As New ArrayList
        Dim dt_title As New ArrayList
        Dim dt_author As New ArrayList
        Dim dt_publisher As New ArrayList
        Dim dt_price As New ArrayList
        Dim dt_pub_date As New ArrayList
        Dim x1 As String

        '接続文字列を設定
        Connection.ConnectionString = "Database=vbnet;Data Source=localhost;User Id=root;Password=yourpassword"

        'オープン
        Connection.Open()

        'コマンド作成
        Command = Connection.CreateCommand

        x1 = "insert into books values ("
        x1 = x1 & Val(TextBox1.Text) & ", '" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "'," & TextBox5.Text & ",'" & TextBox6.Text & "');"

        'SQL作成
        Command.CommandText = x1

        'データリーダーにデータ取得
        DataReader = Command.ExecuteReader

        '破棄
        DataReader.Close()
        Command.Dispose()
        Connection.Close()
        Connection.Dispose()

 一応、動作は確認できた。

 次は、これをApache環境下にコピーする。実行だ。所が、これが、うまく行かない。要は、始めのImports MySql.Data.MySqlClientが、効いていないのだ。

 ならば、記述をImportsを使わずに、文内に書き込む。だが、状態は同じ。

 残るは、コンパイルしては、どうかと言う発想になる。明日は、この辺の事情を確認したい。

 MySqlは、一応動作した。おそらく、まだ試していないが、Visual basic 2010 でも同様に使えるのだろう。そこは収穫だ。

posted by おやじ at 2013/09/24 06:58
コメント(0)  トラックバック(0)

 へそを曲げた我がパソコンが、元通り元気になって貰う様に、復元を行う。バックアップ実行日付は、9月16日となっている。それとは別に、復元ポイントを見れば、9月20日でも、可能の様だ。まず、復元ポイントに戻ってみる。その状態で確認して、ダメなら、バックアップファイルのお出ましとしよう。

 結果は、復元ポイントで以前のポイントに復元する事で問題はなさそうだ。16日からのデータは、無事だ。Apache環境下で、.aspxの動作も戻った。めでたしめでたし。と言う事で、データベース問題は、取りあえず、Apache環境下で、.aspxで使うには、MySQLをテスト評価も加える事にしようと言う事になる。

 もう一つインストールするファイルが増えた事になる。ネットをググると、ADO.NET driver for MySQL のページが見つかる。右下のDownload ボタンをクリックすると、真ん中にLoginボタンが目につく。またこれかと、ページを読み進めると、下に、No thanks, just start my download. とありカーソルを持って行くと、クリックが出来る様なので、クリック。

 何ていう事は無い、会員登録しなくても、ダウンロードできた。その使い方も、ネットをググると出て来る。親切な分かり易いページもあるが、大まかなページも有る。それらが使えそうだ。

posted by おやじ at 2013/09/23 08:16
コメント(0)  トラックバック(0)

 Apache環境下で、.aspxが使える事が分かったので、Web Developer 2010の使い心地を試す。まず、デザインでは、スタイルシートを使う事を昨日書いた。自分でデザインも良いが、ネットを検索すれば、プロが作った質の良いテンプレートが使える。それらは、大方.htmlファイルとなっている。その優れたデザインに、ASP.NETの機能を持ち込む。それを試してみよう。

 Web Developerで.htmlファイルを読み込むと、それはあくまでも.htmlだ。そこで、フォームの追加で、Webフォームを追加する。.htmlのbodyタグ内の内容を、Default.aspxにコピペする。次にheadタグに挟まれた、metaの部分もコピペする。フィームを確認すると、見事にコピーできている。

 さっそく、ツールボックスから、ボタンやら何やら、追加する。位置をpositionで設定する。コードを書けば、それがそのまま機能する。デザインと機能、実に簡単に実現できた。

 そこで、疑問が湧く。データベースは、何を使う。MySQLか、SQL Serverか、どっちにするとね。確か、MySQLを.aspx側から使うには、何かをインストール必要が有ったと思う。となると、SQL Serverだな。

 折角なので、SQL Server 2008 R2 をインストールしよう。と言う事で、探す。何が、どれに該当するのか分からぬが、4つある。この4つで完全版かなと考え、ファイルサイズの大きい順にインストールする。それが終わった所で、早速、Web Developer 2010 を起動する。先程出来たフォームを開き、ソルーションエクスプローラを右クリックして、SQL Server データベースを追加する。データ項目の追加も簡単だ。難なく追加と設定が済む。動作も確認できた。

 次は、これをApache環境下にコピーして、確認する事だ。と言う事で、コピー。ここまでは良かった。所が、Apacheが立ち上がらない。netstat -ano で確認すると、ポート80は、システムで使って居るとなっている。プロセス番号は、4番だ。タスクマネージャーを起動して、4番を調べると、NT Kernel & System となっている。これって、Windowsではないか。なんで、親分が、ポート80に居座るのだ。

 ネットで、ApacheとNT Kernel & System で調べると、かなりの件数に出くわす。大方は、IISが動いているからだとアドバイスが有る。だが、そんな事は、用心して、とうに止めている。裏で動いているともある。だが、今の現状は、そもそも、IISですら立ち上がらない。何か、別の物が動いているそれがなんだか分からない。怪しいのは、SQL Server 2008 R2 だが、多くが言って居る事、IISも起動しない事を考え、一度IISを外してみる。だが、状況は何も変わらない。

 そこで、やな予感はするが、意を決してSQL Server 2008 R2 をアンインストールする事にした。所がだ、綺麗にアンインストール出来ない。ゴミが残る。悪さをしない様に、環境変数から、SQLのパスを外す。レジストリーのキーをネットで探し、削除する。これで、ゴミが有っても悪さはしないはずだ。。。 Apacheを起動する。難なく起動した。

 しかし、.aspxは、動作しない。IISをインストールしなおして、確認するが、こちらもダメ。Windowsが壊れた事を意味するのだろう。

 今日は、バックアップファイルから、Windowsシステムを復元する事にする。難しいね。いろいろやると言う事は。でも、こんな程度では諦めませんよ。

posted by おやじ at 2013/09/22 09:39
コメント(0)  トラックバック(0)

 ApacheでASPを使う方法は、昨日書いた。具体的に何処までできるのか、その辺は、まだ分からない。そこで、順次具体的に試す事になる。

 まず、WebMatrixを使って、Razorで書いたページが使えるか試す。拡張子は、.vbhtml で試した。結果は、あえなく失敗。おまけに悪い事に、ソースその物がテキストとして表示されてしまう。やはり、拡張子は、.aspxでなくてはならない様だ。

 そこで、Wev Developer 2010 を起動し、空のWeb Siteからサンプルを順次作って試す事になる。Visual Basic 2010 を覚えたが、やはり、いきなりページ作りは、さすがに戸惑う。取りあえず、こういう時は、Hello World だ。ラベルを配置、コマンドボタンを配置、ついでにTextBoxも配置する。コードを書く。動作を確認した後、Apacheのホルダーにコピーする。拡張子は無論、.aspxだ。

 結果は、問題なく動作する。さて、次にいくつか試そう。まずもって、デザインをどうするのか。デザインのやり方は、大きく分けて2つあると思う。一つは、テーブルを使って、あたかもExcelでページを作るか如くデザインをする方法だ。これの良い所は、簡単、易しい、見た通りに出来上がる。初めてWebに挑戦する人が、クオリティーの高いページを作れるのも、この方法を使えば、難なくできる。何せ、簡単で手間が掛からない。

 2つ目は、スタイルシートを使った方法だ。Divタグでまとまりを作り、そこにIDで名前を付ける。その塊を、スタイルシートで配置する。プロの方法だね。

 Web Developer 2010 では、テーブルでデザインを進めるには、返って複雑になる。あえなくあきらめ、スタイルシートを使う。コマンドボタンなどは、該当するDivの場所にドラッグ&ドロップをして、position:relative; で、Div内の配置を具体的にTop:5px; left:100px; などと指定する。ページのデザイン画面には、スタイルシートが適応された表示になっているので、非常に分かり易く使いやすい。スタイルシートを使うと言うめんどくささは残るが、問題はなさそうだ。

 ホームページビルダとの違いを確認する為に、.aspx の拡張子を、.html に変更しビルダーで読み込んで見る。まず、Web Devloper 独自のコマンドボタンなどは、エラーとして修正される。

 おや、リストの位置が違うぞ。そこに気が付く。何故違うのだ。どうやら、ややこしい継承などと言う所の扱いが違うので、違う結果を生んでいるようだ。要注意箇所がある事が分かる。

 そうして出来たaspxファイルをApacheへコピーする。難なく動作した。

 どこまでの機能が、使え、どこから制約が有るのか、作って見なければ、分からない。だが、ここまでの所、印象としては、使えそうだ。面白そうなページが出来そうな気がする。

posted by おやじ at 2013/09/21 10:28
コメント(0)  トラックバック(0)

 403のエラーメッセージを独自画面で表示する方法は、昨日の続きとして、出来た様な、大丈夫かな、と言う様な所だ。と言うのは、結局、apache/conf/extra/httpd-multilang-errordoc.conf の設定をいじってしまったからだ。出来たと言えば、出来た。そこはやり過ぎだろうと言われれば、そうですねと言う事になりそうだ。

 まあ、しばらくは、ネットの中をあちらこちら漁ってテストしてみよう。


 Viausl Basic 2010 を何とか、物にしたと思う。そこで、次は、ASPを動かす。それをテーマにしてみよう。ASPは、高機能だ。それで何がしたいと言うテーマは、無いが、とにかくやって見たい。そんな所だ。

 おはようのサーバー環境は、Apacheだ。となると、方法は2つある。一つは、Apacheの環境でASPを動かす方法。今一つは、ポートを変えてのIISの導入だ。折角Apacheを使って居るのだから、まずは、Apacheの環境下で、ASP環境を構築する方法を試す。

 ネットをググると、「How to make Apache run ASP.NET / ASP.NET 2.0」と言うサイトに出くわす。主な内容は、こうだ。

1.Apacheのインストール。 これは、今使って居るので必要ない。スキップだ。
2.Mod_AspDotNetのインストール。 これが必要なんだ。早速インストールする。
3.次は、Apacheの設定ファイルのhttpd.conf に追加とある。
 まず、インストールしたモジュールの宣言だ。
 3-1. LoadModule aspdotnet_module "modules/mod_aspdotnet.so"  でも、他のモジュールを見ると「"」が付いていないので、これを省略した。LoadModule文の一番最後に追加した。
 3-2. 次の文も追加だな。今の追加した文の次に入れて置こう。
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo
 3-3. 次は、少々長いぞ、これは一番最後にしよう。
<IfModule mod_aspdotnet.cpp>
  # Mount the ASP.NET /asp application
  AspNetMount /SampleASP "c:/SampleASP"
  #/SampleASP is the alias name for asp.net to execute
  #"c:/SampleASP" is the actual execution of files/folders  in that location 

  # Map all requests for /asp to the application files
  Alias /SampleASP "c:/SampleASP"
  #maps /SampleASP request to "c:/SampleASP"
  #now to get to the /SampleASP type
http://localhost/SampleASP
  #It'll redirect
http://localhost/SampleASP to "c:/SampleASP"

  # Allow asp.net scripts to be executed in the /SampleASP example
  <Directory "c:/SampleASP">
    Options FollowSymlinks ExecCGI
    Order allow,deny
    Allow from all
    DirectoryIndex index.htm index.aspx
   #default the index page to .htm and .aspx
  </Directory> 

  # For all virtual ASP.NET webs, we need the aspnet_client files
  # to serve the client-side helper scripts.
  AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
  <Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
    Options FollowSymlinks
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>


 ここで注意が必要なのは、/SampleASP "c:/SampleASP" を自分の環境に合わせて変える事だ。試したのは、index.htmlのある場所にホルダーの「asp」を作ったとする。その場合、
/asp "c:/..../asp"となる事だ。変える個所は3か所ある。後は、そのままで良さそうだ。Apacheを再起動する。エラーも無さそうだ。

 で、次の分は、index.aspxの例か。
<%@ Page Language="VB" %>
<html>
   <head>
      <link rel="stylesheet"href="intro.css" mce_href="intro.css">
   </head>
   <body>
       <center>
       <form action="index.aspx" method="post">
           <h3> Name: <input id="Name" type=text>
           Category:  <select id="Category" size=1>
                          <option>One</option>
                          <option>Two</option>
                          <option>Three</option>
                      </select>
           </h3>
           <input type=submit value="Lookup">
           <p>
           <% Dim I As Integer
              For I = 0 to 7 %>
              <font size="<%=I%>"> Sample ASP.NET TEST</font> <br>
           <% Next %>
       </form>
       </center>
   </body>
</html>


 これを、先程のaspホルダーに名前をindex.aspxとして入れる。早速に、http://.../asp/index.aspxとすると、難なく起動した。感動だね。
posted by おやじ at 2013/09/20 11:19
コメント(0)  トラックバック(0)

 リクエストヘッダーを見て行くと、Adminとか、そう言った言葉を埋め込んだ要求が送られている。しかも、バージョンを探る目的で、数字が付帯する。ブルートフォース攻撃だ。特徴は、総当たりをするため、数が多い。

 そんな攻撃に対しては、返すエラーを工夫するのが良いとされる。早速に、一番多いエラーの404を工夫してみた。ネットをググると、独自のページを準備するやり方が目につく。それはこうだ、

1.404.htmlに該当するページを準備する。
2..htaccess に 「ErrorDocument 404 /パス/404.html」を追加する。

 一見、簡単だ。だが、やって見ると問題も有る。まず、404.htmlだが、そこに画像を入れたくなるのは、当然だ。所が、①画像のパスをhttp://から記述しないと、ホルダーをまたぐ動作は、うまく動作しない。②404.htmlへのパスも、紹介記事の多くは、/error/404.html などとなっていたが、error と言うホルダーを作ると、うまくアクセスが出来なかった。少なくとも、おはようのサーバーでは機能しない。error とすると、直接アクセスすら出来ない。error ではなくて、違う名前にしなければならない様だ。

 ③403.htmlに至っては、なぜか動作しない。おはようのサーバーの特性なのか、一般的な物なのか、さらに確認が必要だ。有る記事では、403.htmlまでのパスをhttp://で紹介されているが、別の記事では、http://を使う事を事実上禁ずる内容も有る。理由も有る。まあ、紹介記事もサイトによってばらばらだ。

 取りあえず、一番数の多い404.html を作ってみた。ブルートフォース攻撃を考えると、403対策をしないとまずい。だが、それが上手く行かない。今しばらく、探る作業が必要と思われる。

posted by おやじ at 2013/09/19 10:06
コメント(0)  トラックバック(0)

 合いも変わらず、辛口ブログには、Spam書き込みを試みるアクセスがある。プログラムが、スパムと判断し、弾くとログに記録が残る。

2013/09/18 01:33:46 208.110.68.106
2013/09/18 01:39:48 208.110.68.106
2013/09/18 01:48:52 208.110.68.106
2013/09/18 03:07:58 208.110.68.106
2013/09/18 06:54:45 208.110.68.106

 今日は、早くも 208.110.68.106 がご出勤だ。このIPアドレスは、他のサーバーにも同様にSpamを仕掛けている。既にPingは通らない。USのプロキシサーバー経由の偽装IPアドレスと見た。しかも、ヘッダー情報から、それ用に開発された専用プログラムを使ってのSpamだ。まるで、Spamのプロ。全く迷惑な話だ。もしかして、これが中国からの攻撃警告の18日なのか。それとも、USの悪の仕業か。

 独立行政法人情報処理推進機構は、iLogScannerを提供している。それに触発されて、Visual Basic 2010 を覚える目的で作ったLogFile2にWeb Attack の検出ツールを組み込んだ。殆ど同じ結果が出るが、ちょと違う所も有る。iLogScannerには、そのロジックが公開されていない。従って、そのロジックが正しいのか、不備が有るのかも分からない。

 時として結果の違ったログをオリジナルのログに戻って、検証するが、LogFile2が間違って検出した様には思えない。だが、権威が違う。そこで、おはようのサーバに対してのWeb Attack Report なるコーナを作ったが、そこは公開の場、iLogScannerの結果をもとに、国名を付加して新設する事にした。一方で、取るべき対策は、LogFile2の結果をもとに対策は進める事にした。

 このレポートに出てこないのは、Spam攻撃もだが、ブルートフォース攻撃も出てこない。Spam対策は、LogFile2とそれに従ったブログで行った対策が功を勝している様子だ。次は、ブルートフォース攻撃に対して対策を練らねばならない。

posted by おやじ at 2013/09/18 09:00
コメント(0)  トラックバック(0)

 ファイルを1行読みだすと、早速何かの処理が必要になる。それが、個別データの分離だ。ファイルが作成されたのと全く同じ考えで、読み込むならば、区切りのデリミッタは同じで良いのであまり苦労はしない。所が、今回のログファイルの様に、使い方をこちらで勝手に決める場合は、データの切り出しに工夫が必要になる。

 今回紹介するルーチンは、デリミッタをその都度指定するので、そんな時に便利だと思う。もっとスマートで効率の良いルーチンを考えてくれると、うれしいですけどね。コメント投稿を期待したい。

 まず、文字位置を指定するポインターを定義する。
  Public iBegin As Integer    '切り出しの文字位置

使い方は、こうだ。
  fileno = FreeFile()
  FileOpen(fileno, filename, OpenMode.Input)
  i = 0
  Do Until EOF(fileno)
    recbuff = LineInput(fileno)
    iBegin = 1
    x1 = fn_get(recbuff, Chr(9))   
    x2 = fn_get(recbuff, " ")
    x3 = .........
  Loop
  FileClose(fileno)

で、そのfn_get() とは、

  Public Function fn_get(ByRef x1 As String, x2 As String) As String ' 文字の切り出し
  'x1は、対象文字、x2は、デリミッタ、iBeginは、文字位置であらかじめセット
    Dim n1 As Short
    If Mid(x1, iBegin, Len(x2)) = x2 Then
      fn_get = ""
      iBegin = iBegin + Len(x2)
    Else
      n1 = InStr(iBegin, x1, x2)
      If n1 = 0 Then
        fn_get = Mid(x1, iBegin, Len(x1) - iBegin)
        iBegin = Len(x1) + 1
      Else
        fn_get = Mid(x1, iBegin, n1 - iBegin)
        iBegin = n1 + Len(x2)
      End If
    End If
  End Function

 余計なお世話だが、変数の格納を
① Dim dt_data as New ArrayList  とするのか、
② Dim dt_data() as String とするのか、

 なかなかこれと言った決めての結論が出せずにいる。取りあえずは、大方は②で実現している。

posted by おやじ at 2013/09/17 09:33
コメント(0)  トラックバック(0)

 私がプログラミングで気に入り、多用するルーチンが有る。それはクイックソートだ。何が気に入ったかと言えば、早い。とにかく早い事が気に入った。ソートにはいろいろあり、データの大きさでアルゴリズムを変えるのが賢いやり方だろう。だが、サンデープログラマーは、そんな面倒はしない。バカの一つ覚えで、何でもかんでもソートは、このクイックソートで済ます。もっとも、それでもデータの型に従って、アレンジ位はするけどね。

 まず、データだ。それもデカイデータだ。それをdt_big()としよう。それに付随するデータをdt_data1()から、dt_datan()とする。これを、dt_big()に従ってソートする。

 まず、ポインターの準備をする。dt_no1()とでもしようか。そこには、順番を示す番号を格納する。それと結果を格納するdt_work()を準備しよう。まず、データの準備だ。プログラムでは、こうなる

for i=1 to dt_total
  dt_work(i)=dt_big(i)
  dt_no1(i)=i
next
call sub_sort(dt_work,dt_no1,1,dt_total)

 で、肝心のソートは、以下を使う

Public Sub sub_sort(ByRef st_data() As String, ByRef st_no() As Integer, l As Integer, r As Integer)
  Dim s As String, t As String
  Dim i As Integer, j As Integer, k As Integer
  If l < r Then
    s = st_data((l + r) \ 2)   
    i = l - 1 : j = r + 1 
    Do While 1 
      Do
        i = i + 1
      Loop While st_data(i) < s
      Do
        j = j - 1
      Loop While st_data(j) > s
      If i >= j Then Exit Do
      t = st_data(i) : st_data(i) = st_data(j) : st_data(j) = t
      k = st_no(i) : st_no(i) = st_no(j) : st_no(j) = k
    Loop

    sub_sort(st_data, st_no, l, i - 1)         '左部分列に対する再帰呼び出し
    sub_sort(st_data, st_no, j + 1, r)         '右部分列に対する再帰呼び出し
  End If
End Sub

 それぞれのデータは、dt_data1(dt_no(i)) でソートされたデータを得る事が出来る。元のデータを乱す事も無い。従って、次は別のデータでソートするのも問題は無い。

posted by おやじ at 2013/09/16 09:25
コメント(0)  トラックバック(0)

 サーバーへの攻撃には、SQL-Injectionなどが有名です。そうした攻撃をログから調べてくれるサイトが有ります。iLogScannerと言うツールを使って検出をしてくれます。当方の例では、スタートしてから11分ほど掛かりました。LogFile2もそれを模して、メニューにWeb Attackの項目を追加しました。

 SQL_Injectionの検出が結構難しくて、LogFile2とiLogScannerでは、件数に大きな差が出来てしまいました。これからも、研究の余地有ですね。他の、OS_InjectionとDir_traversalは、件数と項目が一致したので、取りあえず良しとしました。

 iLogScannerには無くて、LogFile2に追加した項目に、Big_Requestと名付けて500文字以上の要求IPをリストします。そもそも500文字を超える要求は、何かを目論む目的を含む要求で、その目的が明確にまだ定義されていなくとも、注意すべき相手だと言う事で、付け加えました。

 今迷って居るのは、「%」を要求の中に入れているIPをどうするのか、迷って居ます。これも、上記と同様に、そもそも送れないコードを送る工夫として「%」を用いる訳で、名前がまだなくとも、まさにこれがInjectionだからです。

 問題は、「%」を用いる要求に、まともな要求が有るのか。答えは、無しです。だから、ずべてリストすべきと思うのですが、そんな過激な考えは、まだ無い様で、そこがためらいになって居ます。ですが、これを定義すると、iLogScannerを包括し、上回る検出感度となります。

 暫くして、気持ちがそちらに向かったら、追加するかも知れません。

 攻撃者のIPを調べると、ある1日だけ、或いは、偽装IPでその日だけ訪れるケースと、頻繁に繰り返すケースが有るようです。繰り返しは、そのIPを禁止リストに追加するなりの対策ですね。

 国名は、一般に言われている通り、韓国、中国ですね。リストされたIPにPINGを送ると、なんと通るんですね。今も健在で悪さを専門に活躍しているのでしょうか。となると、そのIPアドレスを公表するサイトを設けるのも、必要かも知れませんね。例え、それが偽装で使われたIPでも、事実が有る訳ですから。

 昨日も、110.208.109.250で中国から書き込みに失敗した様子が、ログに刻まれました。日本を標的にするのは、国民の関心を外に向ける為の為政者の都合でしょうか、私個人にとっては、きわめて迷惑な話ですね。

posted by おやじ at 2013/09/15 09:22
コメント(0)  トラックバック(0)

 18日の中国によるサイバー攻撃は、有るのでしょう。そうで無くても、日常的に来ていますから。備えは大事です。その備えにLogFile2は、役に立つのか。実際に確認含めて進めてみましょう。

 まず、中国のアクセス傾向を見ましょう。
①ログを読み込む。Selectメニューから、IPアドレスを表示させ、ToolメニューのCountry_Checkで国名をデータに加えましょう。
②次に、SelectメニューでCountryから、中国だけにして、Req_HeaderをWith_Selectで実行します。

③リストされた項目が、出されたリクエストと言う事になります。どこかに穴が有るのか、一点一点、ブラウザで確認するのが良いのですが、件数でみると、約3500件に上ります。クリップボードにコピーして、ブラウザに貼り付けるのでは効率が悪すぎます。

 そこで、HelpメニューにDomainを追加しました。TextBoxにドメインを入れて置き、これをクリックする。そうすると、ドメイン名としてそれを保持する。

 次に、Req_Headerのページで項目を選択したら、右クリックでメニューを出し、Send_to_Browserを実行する。この機能を追加しました。これで確認が、数段楽になりました。

 大方は、404のコードを返し、問題はなさそうです。狙いは、管理権限を奪うためのブルートフォース攻撃ですから、返事を返すやつが要注意ですね。

 それでも現実には、とても全部は当たれない。そこで怪しい奴から選択ですね。


 次に、中国からのIPアドレスを眺めると、何と、101.226.166.195から順番に、101.226.166.254まで、60個、一つも掛ける事なく連番ですね。次は、101.226.167.195から順番に、101.226.167.254まで、60個、一つも掛ける事なく連番ですね。てな具合で、2153個のIPアドレスが並びます。これって明らかに組織ですよね。個人が悪趣味でやるのと違い、明確な目標、すなわち。サーバー空間の覇権を狙った国家として、日本に対しての宣戦布告の様な物ですよね。そう見えませんか。

 Req_Headerを見て行くと、アクセスが多いのがブログに対しての書き込みですね。しかも中国に厳しい口調の辛口ブログです。開設当初は、純粋なコメントの書き込み以外は投稿は有りませんでした。その内、訪問者が増加すると、訳の分からぬ横文字による書き込みが増加しました。初めに取った処置は、
①if (strlen($comment)==mb_strlen($comment)) とする日本語判定です。すると、それに気づいたか、漢字の国らしく、次は、漢字交じりのスパムです。そこで、
②if(!mb_ereg_match(".*[あ-ん]+.*", $comment)) として、ひらがな判定を追加しました。驚く事にさすがですね。それも程なく、難なくクリアして来るではないですか。
そうした関門を幾つ設けても、クリアする。恐ろしきかな、その知恵ですね。

 それだけの知恵の持ち主なら、日本の為に働けば、実入りも多いだろうに、残念ですね。現在は、こちらも知恵を絞りました。これを解くには暫く時間が掛かるでしょう。

 ブルートフォース攻撃で有りもしない管理ページを要求するのですから、それ用のページを用意する。如何にも管理ページだと言うのを。そこには、ボタンを準備してよろしいですかと問いかける。攻撃者は、Yesボタンを押す。罠にかかる。そんなページを作りたくなりますね。

posted by おやじ at 2013/09/14 10:23
コメント(0)  トラックバック(0)

 Impress Watchには、『中国発の攻撃準備とみられるアクセス増加、DNSサーバー管理者は設定再確認を』と題して、中国からのサイバー攻撃の予告に備えろとしています。Xデーは、18日ですか。

 所が、情けないと言ったら良いのか、うかつと言ったら良いのか。LobFile2のプログラムをダウンロードして使うのは、攻める側の他の国ばかりですね。守る側の日本からのダウンロードは、今の所1件も有りません。LogFile2を起動すると、Wan側のアドレスを知る必要が有る事から、Ohayou.jpにアクセスが入り、早速利用している様子が、見受けられます。

 18日にでもなれば、サーバを乗っ取られた話が、マスコミの話題になるのでしょう。日本人のノー天気、平和ボケは、ここまで重症かと逆に驚きます。私もうかつで、ツールは、攻撃者にとっても便利な物で、作った側として利用してくれるのは、うれしいのですが、利用者の中に攻撃を受ける肝心の日本側の人が居ないと言うのが、残念ですね。

 そこで、急遽、プログラムに機能を停止するルーチンを追加しました。私のサーバに攻撃を仕掛ける人のアドレスは、記録されます。余りにもひどい攻撃者が、ツールを利用した場合、それをこちらの意向でLogFile2の機能を停止できるようにしました。原理は、簡単です。LogFile2は、Wan側のアドレスを知る必要が有る事から、こちらに問い合わせをしてきます。その時、攻撃者と分かるアドレスなら、それをLogFile2に教える。LogFile2は、それを受け取ってプログラムを終了する。そうなります。

 こんな事を書くと、攻撃者は、プログラムを覗き、一部を書きかえれば、使える様になってしまいます。スクランブルは、掛けていません。ですが、そもそもそうした技量を持つ攻撃者なら、めんどくさいだけで、勉強を始めて1か月で出来るこの程度のツールは、作れるでしょう。

 自宅サーバを運用していて、スパム書き込みや、サイバー攻撃に問題を感じている人は、少なくないはずです。全員がそれに対応できる技量が有ればよいのですが、そうでは無いはずです。事実、ブログを開設している人の殆どは、「最新のコメント」欄を閉じています。そういう人に使って欲しいツールなのに、やられっぱなしで、そもそも守る事に関心が無いのか、残念ですね。

 とにかく、18日がXデーの様なので、しっかり守りを固めましょう。「攻撃は最大の防御」、そんな事を言う友人が居ます。憲法9条論議では有りませんが、10倍返しが出来る法整備をしてくれたらなーと思いますね。

posted by おやじ at 2013/09/13 09:49
コメント(0)  トラックバック(0)

 LogFile2でReq_Headerコマンドを実行すると、

1 //phpMyAdmin-2.10.0.0/
1 //phpMyAdmin-2.10.0.1/
1 //phpMyAdmin-2.10.0.2/
1 //phpMyAdmin-2.10.1.0/
1 //phpMyAdmin-2.10.2.0/
1 //phpMyAdmin-2.11.0.0/
1 //phpMyAdmin-2.11.1.0/
1 //phpMyAdmin-2.11.1.1/
1 //phpMyAdmin-2.11.1.2/
1 //phpMyAdmin-2.11.2.0/
1 //phpMyAdmin-2.11.2.1/
1 //phpMyAdmin-2.11.2.2/
1 //phpMyAdmin-2.11.3.0/
1 //phpMyAdmin-2.11.4.0/
1 //phpMyAdmin-2.11.5.0/
1 //phpMyAdmin-2.11.5.1/
1 //phpMyAdmin-2.11.5.2/
1 //phpMyAdmin-2.11.6.0/
1 //phpMyAdmin-2.11.7.0/
1 //phpMyAdmin-2.11.7.1/
1 //phpMyAdmin-2.11.8.0/
1 //phpMyAdmin-2.11.9.0/
1 //phpMyAdmin-2.11.9.1/
1 //phpMyAdmin-2.11.9.2/
1 //phpMyAdmin-2.11.9.3/
1 //phpMyAdmin-2.11.9.4/
4 //phpMyAdmin-2.11.9.4/%20HTTP/1.1
1 //phpMyAdmin-2.2.3/
3 //phpMyAdmin-2.2.3/index.php
1 //phpMyAdmin-2.2.3/scripts/setup.php
1 //phpMyAdmin-2.2.6/
3 //phpMyAdmin-2.2.6/index.php
2 //phpMyAdmin-2.2.6/scripts/setup.php
1 //phpMyAdmin-2.5.1/

 てな具合で、変なページが並ぶ。一見して気が付くのは、Adminがある事から、サーバの乗っ取りを目論んでいるのかとまず気が付く。しかも、数字を変えてリクエストを出しているのは、バージョンを探っているのだろう。総当たりだ。うまくヒットすれば、それを起点にサーバを乗っ取る魂胆だ。

 頭の"//"にも調べるとちゃんと意味が有るらしい。インターネットの発明者と言われる人が、"//"は、出来れば無くしたかったと言う言葉は、逆に言えば、確たる意味を持っているぞと言う事の裏返しだ。日本の教科書には、それをきちんと書いている物が、見つからなかった。逆に、こうした事からサーバー攻撃者に教えてもらう事になる。

 Apacheを日本の参考書を元にインストールすると、htdocsのホルダーに、ページを置く事が書かれている。この攻撃は、それを狙っての攻撃だ。防ぐには、ページが置いてあるホルダーを変える事が必要だ。教科書通りではダメなのだ。

 Adminをキーワードに調べると、他にも有るわ、有るわ。そうしたリクエストを自分が管理するサーバーにリクエストしてみる。大方は、404だが、中には、200のステータスで真面目に返事する物が発見される。そこを強化せよと言うのが、対策だ。

 Plustarさんのページには、参考になる情報が多い。中国、台湾、韓国、ロシア、Country_Checkコマンドで国名を追加したら、まずチェックをする。そうした注意が必要だね。
 

posted by おやじ at 2013/09/12 09:47
コメント(0)  トラックバック(0)

頻度 IPアドレス 国名
1 101.226.166.198 China
3 101.226.166.199 China
1 101.226.166.200 China
1 101.226.166.201 China
2 101.226.166.202 China
1 101.226.166.203 China
3 101.226.166.204 China
1 101.226.166.205 China
1 101.226.166.206 China
1 101.226.166.207 China
3 101.226.166.209 China
1 101.226.166.211 China
1 101.226.166.212 China
2 101.226.166.213 China
1 101.226.166.214 China
1 101.226.166.215 China
1 101.226.166.216 China
2 101.226.166.217 China
1 101.226.166.218 China

 これは、昨日のVisitor履歴の一部だ。まあ、よくもIPアドレスが綺麗に並んでいる物だ。pingの通り具合は、下記の通りだ。

Success 101.226.166.198
Failure 101.226.166.199
Success 101.226.166.200
Success 101.226.166.201
Failure 101.226.166.202
Success 101.226.166.203
Success 101.226.166.204
Success 101.226.166.205
Success 101.226.166.206
Success 101.226.166.207
Failure 101.226.166.209
Failure 101.226.166.211
Success 101.226.166.212
Success 101.226.166.213
Success 101.226.166.214
Success 101.226.166.215
Success 101.226.166.216
Success 101.226.166.217
Success 101.226.166.218

 彼らのFoot Printを追うと、みな辛口ブログを順番に見ている。そこから見える目的は、スパム書き込みと言える。

 ちなみに、スパム書き込みに失敗すると、ブログには下記の様なログが残る。

2013/09/10 16:09:59 110.210.1.102
2013/09/10 17:36:29 110.210.1.102
2013/09/11 06:38:55 27.19.160.231
2013/09/11 07:14:55 27.19.160.231
2013/09/11 07:34:36 27.19.160.231

 上記のIPは、いずれも国籍は中国だ。24時間、365日こうしたアクセスが中国からくる。目的は、Spamやら、サーバの乗っ取りだ。それを企てる記録が残る。それも結構高度だ。とても個人の趣味とは思えぬ。組織として働く公務員の仕事の一部かも知れぬ。そんな事を想定させる。だから、LogFile2というソフトが必要になった。

 日本も憲法9条論議ではないが、法改正を進め、自己防衛のためなら反撃が出来るように、それを許可して欲しいね。

posted by おやじ at 2013/09/11 08:16
コメント(0)  トラックバック(0)
 23件中1~20件表示  次のページ

検索


リンク

カウンター
今日: 今日のカウンター今日のカウンター今日のカウンター今日のカウンター今日のカウンター今日のカウンター
昨日: 昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター
累計: 累計のカウンター累計のカウンター累計のカウンター累計のカウンター累計のカウンター累計のカウンター

RSS Feed
RSS Feed  最新の記事
RSS Feed  最新のコメント
RSS Feed  最新のトラックバック

プロフィール
ニックネーム:おやじ
誕生日:4月8日
性別:男
血液型:A型

管理

Copyright 2007 サンデープログラマー All Rights Reserved.
Powered by PocketBlog