MW211 EXIT

devlog
DB/権限(authority)と特権(privilege)
2013年10月31日
「特権」は個々の操作権のこと。
「権限」はそれらをグループ化したもの。

「管理者」区分は、「管理者権限」で管理されることになる。

「管理者権限」を持てば、管理者の「特権」を全て使えるということになる、
分類:設計
DOSコマンド/共有フォルダへのコピー
2013年10月29日
ネットワーク上の他の共有フォルダにコピーする例。
┌───────────────────────────────────┬──┐
│net use \\192.168.x.x\フォルダ パスワード /user:ユーザ名              │接続│
├───────────────────────────────────┼──┤
│copy C:\ファイル.txt \\192.168.x.x\フォルダ                           │複写│
├───────────────────────────────────┼──┤
│net use \\192.168.x.x\フォルダ /delete                                │切断│
└───────────────────────────────────┴──┘
分類:Windows
HTML/特殊半角空白のコピペ
2013年10月28日
「 」は文字コード「0xC2A0」の半角空白で、
「 」は文字コード「0xE28082」の半角空白でそれぞれ表示される。

よって、これをコピペしても、一般的な半角空白「0x20」とは違うことになる。

コピペで指定されたものをPHP的に変換するには、以下のような方法がある。
┌──────────────────────────────────────┐
│$■ = preg_replace('/\xC2\xA0/'    , ' ', $■);  //  を半角空白にする  │
│$■ = preg_replace('/\xE2\x80\x82/', ' ', $■);  //  を半角空白にする  │
└──────────────────────────────────────┘

でも、なかなかこの「0xC2A0」と「0xE28082」にはお目にかかれないような気がする。

たいていは「0x20」に変換されて表示されているようだ。

例えばSmartyで以下のように変換して表示したとしても…
┌──────────────────────────────────────┐
│{■|replace:' ':' '}                                                   │
└──────────────────────────────────────┘
「あ1- 1」だと「0xE28082」( )となるが、
「あ 1-1」だと「0x20」(半角空白)となって表示されるようだ。

また、「0xC2A0」( )に至っては、見たことがない。

本来「 」は「0xA0」なのだが、UTF-8的には「0xC2A0」となるものらしい。
ただ、「0xA0」も「0xC2A0」も表示されているのをみたことがないので
真偽がわからない。
分類:HTML
Windows/シャットダウンコマンド
2013年10月27日
「shutdown.exe」についてまとめた。
┌────────────┬─────────────────────────┐
│shutdown.exe            │ヘルプ                                            │
│shutdown.exe /?         │                                                  │
├────────────┼─────────────────────────┤
│shutdown.exe /s         │終了                                              │
│shutdown.exe /s /t 30 /f│(既定)                                            │
├────────────┼─────────────────────────┤
│shutdown.exe /r         │再起動                                            │
│shutdown.exe /r /t 30 /f│(既定)                                            │
├────────────┼─────────────────────────┤
│shutdown.exe /t 0       │猶予時間なし・非強制                              │
├────────────┼─────────────────────────┤
│shutdown.exe /t 0 /f    │猶予時間なし・強制                                │
├────────────┼─────────────────────────┤
│(なし)                  │猶予時間あり・非強制                              │
├────────────┼─────────────────────────┤
│shutdown.exe /t 秒      │猶予時間あり・強制                                │
│shutdown.exe /t 秒 /f   │(既定)                                            │
├────────────┼─────────────────────────┤
│shutdown.exe /f         │強制                                              │
└────────────┴─────────────────────────┘
分類:Windows
IE/画面サイズの設定
2013年10月26日
IEで画像を採取しようとした場合、手動でサイズを調整すると
微妙に統一がとれなかったりする。

これを解消するため、IEの画面サイズを値で指定する方法を調べた。

「F12」を押して、「開発者ツール」を起動する。
メニューから「ツール」→「サイズ変更」を選択すると
以下の選択肢が出てくるので、任意のものを選ぶ。
  ・「 800× 600」
  ・「1024× 768」
  ・「1280× 768」
  ・「1280×1024」
  ・「 480× 800」
  ・「 800× 480」

「カスタム」という選択肢を選べば、自由にサイズを登録できる。
分類:ブラウザ
PHP/formの飛び先パスについての注意
2013年10月25日
formタグのactionパラメータに、飛び先のURLを指定する場合、
それがファイルではなく、ディレクトリであった場合には
しっかり末尾に「/」をつけてあげなければならない。
┌─┬────────────────────────────────────┐
│×│<form method="post" action="/abc">                                      │
├─┼────────────────────────────────────┤
│○│<form method="post" action="/abc/">                                     │
└─┴────────────────────────────────────┘

さもないと、「301転送」が発生してしまう。
┌─┬────────────────┬───────────────────┐
│×│… "POST /abc HTTP/1.1" 301 …  │301 Moved Permanently(転送)           │
├─┼────────────────┼───────────────────┤
│○│… "POST /abc/ HTTP/1.1" 200 … │200 OK(正常)                          │
└─┴────────────────┴───────────────────┘
(といっても、そうならないパスがあったりするから厄介だ)

「301転送」が起きるとどうなるのか?POSTの中身が消えてしまう(引き継がれない)

つまり、formタグの「/」がないだけで、いくらsubmitしても
受信側で$_POSTでデータを拾えないという怪奇現象が発生してしまうのだ。
(といっても、そうならないパスがあったりするから、ますます怪奇現象だ)
【後日追記あり】
分類:PHP、Apache
Apache/GET・POSTパラメータの追跡2
2013年10月24日
「multipart/form-data」の場合。

ログ上には以下のようなデータが出力されている。
┌──────────────────────────────────────┐
│… mod_dumpio.c(55): mod_dumpio:  dumpio_in (data-HEAP): xxx bytes          │
│… mod_dumpio.c(74): mod_dumpio:  dumpio_in (data-HEAP): -------------------│
│… mod_dumpio.c(142): mod_dumpio: dumpio_out                                │
└──────────────────────────────────────┘

「-------------------」の部分を解析する(改行コードを変換する)と
以下のような感じで、POSTデータがあらわれてくる。
┌──────────────────────────────────────┐
│-----------------------------xxxxxxxxxxxxx                                  │
│Content-Disposition: form-data; name="id"                                   │
│abc                                                                         │
│-----------------------------xxxxxxxxxxxxx                                  │
│Content-Disposition: form-data; name="name"                                 │
│xyz                                                                         │
│-----------------------------xxxxxxxxxxxxx                                  │
│--                                                                          │
└──────────────────────────────────────┘

境界線の定義とかも実はその前で出力されている。
┌──────────────────────────────────────┐
│… mod_dumpio.c(74): mod_dumpio:  dumpio_in (data-HEAP):                    │
│                       Content-Type: multipart/form-data;                   │
│                       boundary=---------------------------xxxxxxxxxxxxx\r\n│
└──────────────────────────────────────┘
分類:Apache
Apache/GET・POSTパラメータの追跡1
2013年10月23日
GETもしくはPOSTされたデータが本当にApacheでやりとりされているのか
トレースできるモジュールがApacheにはある。

「mod_dumpio」である。
既定では封印されているので(処理が重くなる?)、解き放ってあげねばならない。

「httpd.conf」を編集する。

以下のモジュールがコメントアウトされ封印されているので
先頭の「#」を除去して封印を解く。
┌──────────────────────────────────────┐
│LoadModule dumpio_module modules/mod_dumpio.so                              │
└──────────────────────────────────────┘

ついでに以下も記述(追加)する。
┌──────────────────────────────────────┐
│DumpIOInput On                                                              │
│DumpIOOutput On                                                             │
└──────────────────────────────────────┘
#これが正しい作法か疑問だが、上記「LoadModule」の次の行に追加したらOKだった。

ログレベルを「debug」にする。
┌──────────────────────────────────────┐
│#LogLevel warn                                                              │
│LogLevel debug                                                              │
└──────────────────────────────────────┘

これで設定完了。Apache再起動。

エラーログに、出力される。
#エラーログは以下のような感じで「httpd.conf」に設定されている
┌──────────────────────────────────────┐
│ErrorLog "logs/error.log"                                                   │
└──────────────────────────────────────┘

以下のような文言が出力されていれば設定成功。
┌──────────────────────────────────────┐
│… mod_dumpio.c(…): mod_dumpio: …                                         │
└──────────────────────────────────────┘
分類:Apache
Windows/タスクスケジューラでパスワードがないと
2013年10月21日
タスクスケジューラで、パスワードのないアカウントに実行させる設定をすると
エラーが発生する場合がある。
┌──────────────────────────────────────┐
│定時タスクのプロパティ                                                      │
├──────────────────────────────────────┤
│┌──┐                                                                    │
││全般│                                                                    │
││    └─────────────────────────────────┐│
││┌セキュリティオプション───────────────────────┐││
│││○ユーザがログオンしているときのみ実行する                          │││
│││●ユーザーがログオンしているかどうかにかかわらず実行する            │││
│││  □パスワードを保存しない  タスクがアクセスできるのは              │││
│││                                  ローカルコンピューターリソースのみ│││
│││■最上位の特権で実行する                                            │││
││└──────────────────────────────────┘││
│└────────────────────────────────────┘│
└──────────────────────────────────────┘
上記の設定だろ、以下のエラーダイアログが表示される。
┌──────────────────────────┐
│タスクスケジューラ                                  │
├──────────────────────────┤
│タスク○○でエラーが発生しました。エラーメッセージ:│
│1つ以上の指定された引数が有効ではありません。       │
└──────────────────────────┘
意味がわかりづらいが、パスワードがないのでセキュリティ的に無理ってことらしい。

仕方ないから、「パスワードを保存しない」と宣言するしかないみたい。
┌──────────────────────────────────────┐
│定時タスクのプロパティ                                                      │
├──────────────────────────────────────┤
│┌──┐                                                                    │
││全般│                                                                    │
││    └─────────────────────────────────┐│
││┌セキュリティオプション───────────────────────┐││
│││○ユーザがログオンしているときのみ実行する                          │││
│││●ユーザーがログオンしているかどうかにかかわらず実行する            │││
│││  ■パスワードを保存しない  タスクがアクセスできるのは              │││
│││                                  ローカルコンピューターリソースのみ│││
│││■最上位の特権で実行する                                            │││
││└──────────────────────────────────┘││
│└────────────────────────────────────┘│
└──────────────────────────────────────┘
これなら設定できる。
分類:Windows
PostgreSQL/テーブルのバックアップ
2013年10月20日
メンテナンスがしやすいプレーンテキスト(insert文)を取得する手順。

「pgAdminⅢ」のツリー上から、対象テーブルを右クリックし
「バックアップ」を選ぶ。

「ファイル名」と「フォーマット」を選ぶ
┌──────────────────────────────────────┐
│┌────────────────────────────────────┐│
││                ┌──────────────────────────┐││
││ファイル名      │C:\(ファイルの保存先)                               │││
││                ├──────────────────────────┤││
││フォーマット    │Plain                                               │││
││                └──────────────────────────┘││
│└┐                    ┌────────────────────────┘│
│  │ファイル・オプション│                                                  │
│  └──────────┘                                                  │
│                                            ┌──────┐┌──────┐│
│                                            │バックアップ││ キャンセル ││
│                                            └──────┘└──────┘│
└──────────────────────────────────────┘

「#1ダンプオプション」を選び、以下をチェックする。
┌──────────────────────────────────────┐
│┌────────────────────────────────────┐│
││┌クエリー──────────────────────────────┐││
│││□CREATE DATABASE構文を含む                                         │││
│││□DROP DATABASE構文を含む                                           │││
│││■列名インサート使用                                                │││
│││■インサートコマンド使用                                            │││
││└──────────────────────────────────┘││
│└─┐                  ┌────────────────────────┘│
│    │#1ダンプオプション│                                                  │
│    └─────────┘                                                  │
│                                            ┌──────┐┌──────┐│
│                                            │バックアップ││ キャンセル ││
│                                            └──────┘└──────┘│
└──────────────────────────────────────┘

「バックアップ」を実行する。
┌──────────────────────────────────────┐
│┌────────────────────────────────────┐│
││                                                                        ││
││プロセスは、0のリターンコードを返しました。                             ││
│└───┐          ┌──────────────────────────┘│
│        │メッセージ│                                                      │
│        └─────┘                                                      │
│                                            ┌──────┐┌──────┐│
│                                            │    完了    ││ キャンセル ││
│                                            └──────┘└──────┘│
└──────────────────────────────────────┘
分類:PostgreSQL
前へ 1 2 3 次へ