ホーム

PHPで翻訳三昧

1ページ100KBまで

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

ひと昔前は、画像やCSS、JSなど付随するファイルを含め
1ページのサイズは100KBまでというのが、ユーザを待たせない
トラフィック量の目安だったような気がします。

今はコンピュータの性能が各段に上がり気にしてませんでしたが
クライアントのデバッグツールのトラフィック量を見て
prototype.js が100KBあることにこの度気づきました。
最新バージョンだと 126KB あります。

PHPの基礎体力では prototype.js を除いた1ページの合計が
30KB~70KB くらいなので相当なウエイトを占めてることになります。
prototype.js を使ってないページでも呼んでいたので
これを外したところ描写が早くなったのを体感できました。
掲示板以外のページはサクサクです。

不要なページで読むなよってとこですけど、
時々やってるPHPスクリプトのパフォーマンス最適化よりも
ユーザ目線での見直し方が結果が顕著で
パフォーマンスに直結するんだとあらためて思いました。
jquery.js(55.9KB)への乗り換えも前向きに考えよ。
1ページ100KBまでというのは今も生きてると思いました。

スパム業者から投稿フォームを隠す

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

またPHPの基礎体力掲示板の話。
今日のスパム投稿がこれ

59.42.230.94
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MAXTHON 2.0)

またまた手入力による投稿、大変ご苦労なことです。
Hostをみると中国からの投稿で
リクエスト履歴を追うとご丁寧に Referer を残してあります。
Googleで 「新規投稿 bbs」 を検索した結果からでした。
検索結果の表示開始が 240 となってるので
こうしてみつけた掲示板に手当たり次第投稿してるのでしょう。

決定的なスパム投稿対策ではありませんが
検索結果に投稿フォームのページが表示されなければ
こうした投稿もありませんので、検索エンジンがインデックスしないよう
いくつか対策を施してみました。
続きを読む

イラっとくるマイラインの電話営業

  • 2009-04-25 土 14:23:16
  • 生活
[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

いろんなマイラインの取次店から営業の電話がよくあります。
営業トークが苦手な私でさえ、
ひどいと感じるワンパターントークに毎度イラっとさせられます。
いいかげん改善されてもよさそうなものですが
その様子がまったく感じられないので書いてみました。

1.私、□□□□会社の代理店(取次店)をしています、
  ○○○○の△△と申します。

あなたは何屋さんなの?
ネームバリューのある会社名を前に出し
系列会社のようなイメージをかもし出してるけど
何者なのかさっぱりわからない自己紹介に、イラっ!
仕事内容をはっきり言えないのは自信のない裏返し。
「八百屋の田中です。」
これが一番わかりやすく自信も伝わってくる自己紹介。

2.この度お電話料金が安くご利用頂けるようになりましたので
  確認のお電話を差し上げました。

まるで、「電話料金引き下げのお知らせ」をイメージさせる言い回しに、イライラっ!
この「確認」という言葉には肝心なところが抜けている。
本当ならこんな説明のはず。

「電話料金が安いプランがあるので、当社でマイラインの
 切り替え手続きを致しましょうか。」

要は、マイラインを切り替えるかどうかという話にも関わらず
「マイライン」という言葉を使わないのは、
選択権がこちらにあることを意識させたくないのでしょう。

はじめに自社が何者かをはっきり言わないのも
電話会社が料金値下げを事後報告しているようこちらにイメージさせ
契約を取ろうとしてるわけね。

3.詳しくは地域の担当がお伺いしてご説明差し上げます。

イラっとはこないけど、忙しいので訪問されても困ります。ほんとに。
「資料を送っといて下さい。時間のある時に目を通してみます」と言うと
紙ベースの資料は無いとくる。

紙ベースのものを送るとなると
結局、マイラインの申込書ってことになるからでしょ。
こちらが Yes というまでは、どうあってもマイラインを前に出したくないらしい。

電話や通信に詳しくない人だと、「電話料金引き下げ」で釣られ
「マイライン」という言葉を耳にすることなく Yes と言ってしまうかもしれませんが
弱者を釣るトークは、オレオレ詐欺と大差ないと感じます。

ほとんどの会社がこれに類似した営業トークなので
マニュアル化されたものが出回ってるのでしょうね。
マイラインの取次ぎはまっとうな商売ですが
こんなうさん臭い営業トークでは会社のイメージダウンでしょう。
改善される様子がまったく感じられないのは、
イメージダウンのリスクより利益が上回ってるってことですかね。

マイラインの電話営業の方へ、
うさん臭い営業トークマニュアルは捨てて
わかりやすい営業トークでがんばってください。

最後に、素直に耳を傾けられる
模範的なマイラインの営業トークを考えてみました。

1.私、マイラインの取次ぎサービスをしております
  ○○○○の△△と申します。

2.この度、電話会社Aで他社に比べ
  お電話料金が安いサービスが始まりました。
  この機会にマイラインを見直してはいかがでしょう。

3.ご検討頂ける様であれば、
  お伺いして詳しくご説明差し上げます。

SQLインジェクション発見

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

IPA情報処理推進機構さんで提供されてる
ウェブサイトの脆弱性検出ツール iLogScanner
昨年11月にバージョンアップしてました。
って、気付くの遅いですね。
気にしてたつもりでしたがアナウンスを見逃してたようです。

個人サイトだと、第三者から客観的に
サイト内を見てもらう機会ってそうありませんし
アプリケーションの現状での脆弱性を確かめられるので
まだの方は使ってみてください。

さて、PHPの基礎体力のココ2日分のアクセスログを
チェックしてみたところこの度はじめて検出されました。
SQLインジェクションが 176件、このうち
攻撃が成功した可能性の高い件数は 0件という結果です。

解析結果レポート

攻撃とみなされたアクセスは、こんな感じで解析ログに記録されます。

攻撃が検出されたログ

攻撃部分のコード掲載はやめときますが
すべて副問合せを含んだSQLだったので
うちのサーバではまったく機能しない攻撃でした。

とはいえ、持ちあわせの知識で
考えられる限りのこんな対策を施しています。
続きを読む

$_SERVER[‘HTTP_*’] はクライアントの値

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

スパム投稿の特徴を見つけ出すのに、どんな値を
ログに記録してたらいいのか試行錯誤してたところ、
PHPがあらかじめ用意してくれるスーパーグローバル変数
$_SERVER の中でキーが HTTP_ で始まるものが
クライアントが送信してきた値だとつい最近知りました。

よく Proxy が付加してくる ViaX-Forwarded-For など
全て大文字で、- (ハイフン)は _ (アンダーバー) に変換され
こんなキーで得られます。

$_SERVER[‘HTTP_VIA’]
$_SERVER[‘HTTP_X_FORWARDED_FOR ‘]
続きを読む

auto_prepend_fileで役割分担

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

このブログ、12日の早朝よりスパム投稿の集中砲火をあびとります。
今朝出勤ししてから仕事を終えて戻るまでに
コメントスパムとトラックバックスパム両方で300件強。
あーめんどくさい。

広く知られた WordPress だけにスパム業者も解析済みのようで
コメントスパムもフォームを拾いに来た形跡がありません。
TBに至ってはフォームそのものが無関係なので
今回は Javascriptでスパム投稿対策 とはいかんようです。

スパム業者には早々退散願いたいところですが
WordPress に手を加えるのもなんだと思ったので
auto_prepend_file を使ってみました。

auto_prepend_file は、
リクエストされたPHPスクリプトの実行前に
自動で実行するスクリプトを指定するPHPの設定です。
自動 require みたいな事ができます。

コア php.ini ディレクティブに関する説明
auto_prepend_file

これが指定できるのは .htaccess です。
自動実行させたいスクリプトのパスが
‘/home/userdir/spamFilter.php’ だとすると
該当ディレクトリの .htaccess に次の1行を書き加えます。

.htaccess

php_value auto_prepend_file "/home/userdir/spamFilter.php"

これによりPHPスクリプトがリクエストされると
その実行前に必ず spamFilter.php が実行されます。
自動実行される spamFilter.php は、
普通のPHPスクリプトと変わりなくなんでも出来ます。
ただし、対象のディレクトリ以下全てのPHPスクリプトの実行前に
必ず実行されることになるので使いどころ注意です。

今回はスパム投稿をハネて余分なサーバーの負荷を
減らせれば良いので、POSTメソッド以外はサッサとスルーさせ
残りをブラックリストでフィルタリングです。
引っかかったやつには、
「404 Not Found + 本文無し」 のレスポンスです。

spamFilter.php

<?php
if ('POST' === $_SERVER['REQUEST_METHOD']):
    $__isSPAM = false;

   /**
    * このへんは、UAやHost、Proxyっぽいものなど
    * 適当にブラックリストでフィルタリング。
    * 該当する場合は $__isSPAM = true; にする。
    */

    if (true === $__isSPAM) {
        header('HTTP/1.0 404 Not Found');
        exit();  // SPAMに本文は不要!
    }
endif;
?>

auto_prepend_file でこうした役割を持たせれば
アプリケーションに手を加えることもなく本来の役割に専念させられます。

1 2 3 4 5 6 7 8 9 10 11 12

ホーム

Ad
Apache
MySQL
PHP
お気に入り
ん。。。。。。広告
アーカイブ
Ad

ページの上部に戻る