エプソンダイレクト株式会社

2013年8月6日(火曜日)

『教え子』からの依頼

Category: EC-CUBE | Posted By at 23:39:09

EC-CUBE ロゴ
昔々、00H で行っていました基金訓練。
その中で訓練を受けていた方が、
実際に EC-CUBE でネットショップをオープンし
成功されている方がおられます。

『教え子』とはいっても年齢から言えば大先輩。
教える時にも年齢は老若男女様々でしたから、
当時は色々と苦労しながらの訓練でした。
ただし、そこはそれ同友会的な『共育』的な精神で、
我々も色々と学ぶことが多かったように思います。

さて、そのお方が自分でサイトをカスタマイズしていたところ
トラブルが発生しどうしようもなくなったということ。
なかなか手ごわそうな内容です。
正直、他人が触ったコードほど(そこにコメントがないならなおさら)
どこをどういじればおかしくなるか…というのが予想できないからです。

さて私にお盆はあるのか(笑)?

2013年7月7日(日曜日)

Limit Login Attempts

Category: WordPress | Posted By at 23:23:35

WordPress のログインについては、
通常何度でもパスワードの入力ミスが許されます。
これは言い換えればどうしても破りたければ
何度も何度もアタックを試みられるわけです。
いわゆるブルートフォースで破られる可能性が高くなります。
ちなみに標準状態ではこの不正アクセスを
受けているかどうかさえわからない状況です。

Limit Login Attempts devel.kostdoktorn.se

さて今回紹介する Limit Login Attempts は
ログインミスの回数を制限できるもの。
考えたら当たり前なんですがないものは仕方ないですよね。

最初の状態では日本語に対応していないので
GitHub で配布されている日本語化ファイルを利用してみましょう。
ちなみに必要なのは limit-login-attempts-ja.mo ファイルだけです。
これをプラグインのあるディレクトリにアップロードしましょう。

Limit Login Attempts

設定画面はこんな感じです。
ちなみに試してみて自分でロックアウトしないように
気を付けてくださいね(経験者は語る…)。

2013年6月29日(土曜日)

WordPress の admin アカウント

Category: WordPress | Posted By at 23:37:03

WordPress という CMS を利用していると
アタックされることも少なくありません。

管理者の名前を admin にしていると
アタックを受けた挙句乗っ取られる可能性もあります。
だいたい admin( administrator:管理者の略)というくらいですから
なんでもできる権限が与えられている可能性は高いですから
こういうときには狙われやすいですよね。
乗っ取られると改竄の恐れもあります。
くれぐれも気を付けないといけません。

また WordPress は親切なことに
何度ログイン失敗しても標準ではロックアウトする機能はありません。
つまりその気があれば何度も何度もアタックを試みることができます。

できれば admin アカウントは削除し
別の名前の管理者アカウントで運用するべきです。

2013年6月21日(金曜日)

WordPress のトラブル対応中

Category: WordPress | Posted By at 23:36:16

お客様より WordPress のトラブル対応のご依頼を頂きました。
WordPress を使ったサイトを運営されていたようですが、
制作・管理を委託されていた会社さんが感染してしまい、
WordPress サイトが検索エンジンで
危険なサイトとして表示されてしまうとのこと。

む~~~、ちょっと厄介そうな感じです。
今日データを持ってきていただいたので中のソースを調べてみると、
どうやら header.php に異常なコードが見られます。
Trojan 系(トロイの木馬)のもののようで、
恐らく意図しない JavaScript が埋め込まれているようです。
見てみるとフリーのテンプレートを利用し
それを手直しして利用しているようです…。

それがプロの仕事か !? とちょっと疑問に思いながら… (_ _;;;

感染経路はいくつか考えられますが、

  • FTP アカウントが乗っ取られた
  • 管理しているパソコンがウイルスに感染した
  • そもそも悪意のあるテンプレートだった

等々…
色々考えられますが、修正しないといけないことに変わりはありません。

ここで、お客様の了解を得て FTP で入ってみてびっくり…。
全然知らない会社も同じサーバで運用されており内容が丸見えです…。
ぉぃぉぃ…本当に Web 制作会社としてお金もらってやる仕事じゃないぞ…。

しばらくは残存している問題がないかチェックしていきますが
あまりにひどい管理で、こんな同業者もいるのか…と怖くなりました。

2013年6月17日(月曜日)

Medoo を使ってみる ~その 4 ~

Category: オープンソース | Posted By at 22:53:42

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。
(ここまでコピペ)

今回は WHERE 句の説明を少々。
基本は第三引数で

$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[<]" => 20	//	20 未満
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[<=]" => 20	//	20 以下
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[>]" => 20	//	20 を超える
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[>=]" => 20	//	20 以上
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[<>]" => array( 20, 60 )	//	20 以上 60 以下
	)
);

というようにします。

論理演算もできます。

$r = $Db -> select ( 'test_table', 'username',
	array(
		"AND" => array(				//	且つ
			"age[>=]" => 20,		//	20 以上
			"gender" => 'female'	//	女性
		)
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"OR" => array(				//	または
			"age[<]" => 20,			//	20 未満
			"gender" => 'male'		//	男性
		)
	)
);

とりあえず暑いのであまり難しいこと考えるのも大変でしょうし、
今日はこの辺で…。暑い…溶けるぅ~~~っ m(_ _m;;;

2013年6月16日(日曜日)

Medoo を使ってみる ~その 3 ~

Category: オープンソース | Posted By at 23:38:18

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。
(ここまでコピペ)

さて前回データを入れることができたので、
今度はそこから抽出してみましょう。
以前は結構クエリをゴリゴリ書いていたのですが
Medoo だとその辺がすっきりしている気がします。

$r = $Db -> select( 'tbl_sample', 'text', array( 'id' => 3 ) );

という感じで $r に配列として代入されます。
第一引数にテーブル名、第二引数にカラム名、
第三引数が where 句等になります。

where 句の使い方が Medoo の肝になる気がしますが、
第三引数一個だけしか用意されていないところから
ちょっとコツが要りそうな気がします。
基本は多次元連想配列なので、あまり悩まないでください。

Medoo のサイトの WHERE 句の説明を見ると
全部英語なので身構えるかもしれませんが、
基本は技術英語ばかりなのでなんとかしましょう(笑)。

面白いのはサンプルにもある

$database->select("account", "user_name", [
	"user_id[>]" => 200
]);
// WHERE user_id > 200

の"user_id[>]"のような表現。
簡単に表現しようというのが随所に見られて、
ものぐさな私には向いているかもしれません(笑)。

2013年6月15日(土曜日)

Medoo を使ってみる ~その 2 ~

Category: オープンソース | Posted By at 23:09:36

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。
(ここまでコピペ)

さて前回のところでデータベースへの接続はできたので、
実際にデータを入れてみましょう。

例えば

CREATE TABLE IF NOT EXISTS `tbl_sample` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` varchar(100) NOT NULL,
  `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

こんな感じのテーブル tbl_sample を用意しました。

id はプライマリキーでオートインクリメント処理。
text は文字列、updatetime は更新した時間が入力されます。

ここになにかデータを入れてみましょう。

$data = array(
  'text' => 'test'
);
$Db -> insert( 'tbl_sample', $data );

第一引数はテーブル名を指定し、
第二引数にあらかじめ配列にデータを入れるだけです。
ただし

$data = array(
	array( 'text' => 1 ),
	array( 'text' => 2 ),
	array( 'text' => 3 ),
	array( 'text' => 4 ),
	array( 'text' => 5 ),
	array( 'text' => 6 )
);
$Db -> insert( 'tbl_sample', $data );

このような多次元配列には対応していないので注意が必要です。
このような場合は

$data = array(
	array( 'text' => 1 ),
	array( 'text' => 2 ),
	array( 'text' => 3 ),
	array( 'text' => 4 ),
	array( 'text' => 5 ),
	array( 'text' => 6 )
);
foreach( $data as $d ){
	$Db -> insert( 'tbl_sample', $d );
}

と foreach 等でループを回しましょう。

2013年6月14日(金曜日)

Medoo を使ってみる ~その 1 ~

Category: オープンソース | Posted By at 23:22:28

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。

さて Medoo は MIT ライセンスで作られており、
無料で自由に使うことができます。

組み込みについても簡単で、

require_once( 'medoo.php' );

で OK 。

あとは

$args = array(
    'database_type' => 'mysql',  // データベースの種類
    'username' => 'dbuser',      // データベースのユーザ名
    'password' => 'dbpass',      // データベースのパスワード
    'server' => '127.0.0.1',     // データベースのサーバ名
    'database_name' => 'test'    // データベースの名前
);
$Db = new medoo( $args );        // インスタンス化

とすることでデータベースとの接続は完了です。

mysql_connect()…とかって書いてもいいんですが、
なんかこっちの方がすっきりしていて個人的には好きです。

ただ Medoo を組み込むときに PDO エラーのような表示がされる場合、
環境で PDO が有効になっていないかもしれません。
php.ini の中の

;extension=php_pdo_mysql.dll

を探して先頭のセミコロン ; を削除してください。

2013年6月5日(水曜日)

PHP の データベースフレームワーク Medoo

Category: オープンソース | Posted By at 22:05:35

Medoo – The Lightest PHP database framework to accelerate development

今回のプログラム騒動で実は一番活躍したのは
この Medoo かもしれません。
今回初めて使ったのですが、学習スキルも少なくて済み、
短時間で簡単に PHP と DB の入出力を連携させるには
有効な手段の一つだと思いました。

なかなか情報が少ないのと英語だらけだったので
最初は結構不安でしたけどね(笑)。
その昔 PEAR とかで DB を扱うというのがあったのですが
なんかいまいち使い勝手がよくなくてトホホな感じでした。

今回使った Medoo は基本的に
すごくシンプルでわかりやすい。
普通にプログラムを組んだことがあるなら
すぐになじめるんじゃないかなと思います。
小規模な案件なら十分に役に立つことでしょう。

2013年4月12日(金曜日)

Spam Free WordPress で WordPress のスパム対策

Category: WordPress | Posted By at 23:38:14

ブログをやっているとスパム対策というのは
運用の中で絶対に必要になってきます。
今まではそんなになかったのですが、
ここ数ヶ月恐らく中国方面からの
『ブランド品のコピーどないだ?』というような
スパムがガンガン来ていました。

WordPress 標準の Akismet は、
ほぼ 100 % の確率でスパム判定に成功しているのですが、
それを削除するのは一応手動です。
スパムを削除っていうボタンを押すだけなんですけどね (^o^;;;。

たださすがに毎日これをするのもバカバカしいし…
と思っていろいろ探していると
Spam Free WordPress というものを発見。
さっそく試してみたところ…
嘘のようにすっきり !!
一通も入ってこなくなりました (^o^;;;

もともとコメントを求めてやっているブログではないのですが、
普段からコメントが少なくて検証のしようがありません (´・ω・`) 。
ひょっとすると『昇龍拳出ねえな』…もとい
『コメント入力できねえな』なんて方がおられたらごめんなさい。
とりあえずこれで様子見てみましょう。
テストしていただけると中の人は涙すると思います(笑)。

HP Directplus -HP公式オンラインストア- デル株式会社 東芝ダイレクト 富士通パソコンFMVの直販サイト富士通 WEB MART ソフマップ・ドットコム