Tag Archives: WordPress

Windows Live WrightがWordPressに接続できない。

かなり前からWLWでWordPress書く習慣があるが,最近一部のWordPressサイトはwlwに接続できない問題発生,サーバー側に接続しようとすると以下のようなメッセージが表示され接続(投稿)出来ない。
———————————————————————————————————————

ログイン中に予期しないエラーが発生しました。
サーバーの応答が無効ですーブログサーバーから受信した
blogger.getUsersBlogsメソッドへの応答が無効です。
invalid response document returned from XmlrRpc server

———————————————————————————————————————

原因はXML-RPC戻るXMLテキストの最后は破损。なんどもGoogleしたが、対策が見つからなかった。今天は遂に解决した。

オリジナルの対策は以下リンクにあるようです:

https://www.corelan.be/index.php/2008/10/14/windows-live-writer-unable-to-connect-to-wordpress-blog/

This is caused because something (a plugin ? my webserver (IIS) ? something else ?) decided to add UTF-8 BOM to the XML-RPC response. Result : the xml response is 3 bytes longer than expected, which causes the xml response to be truncated.

原因はIISの问题らしい。しかしこちら使うのはLAMP,でも対策は有効だ。

解決策:
(1)wp-includesパスにclass.IXR.phpファイルをみつけ,
(2) $length = strlen($xml);  を $length = strlen($xml)+3 に書換え

Google App Engine にWordPressを試す

Google App Engine が PHP をサポートするから、WordPressでも動くかなと調べてみた。

実は、Google App Engine できた初期から、すでにJavaでPHPのインタープリターを作った勇者が居た。littlesoft社のPHP4GとSQL4Gの組み合わせで、WordPressを動く環境ができた。

Google App Engine がPHP をサポートするベターテストする際も、Google のクラウド・データベース(Cloud SQL)を利用して、WordPressが動くようになった!GoogleからWordPressのGoogle App Engine プラグインも出して、Running WordPress in App Engineというドキュメントまで用意した。

Google App Engine 自体、余程のトラフィックない限り無料だ、しかしデータベース(Cloud SQL)は有料!商用ならともかく、個人サイトには必要ないかもしれない。一応一か月の試用があるが、今回はここで「試す」を打ち切る。

Google App Engine から外部のMySQLへ接続できないから、どうしても無料でWordPress立ち上げるなら前述SQL4Gを利用する方法もある。SQL4Gのデータベースエンジンは、H2というPure Javaのリレーショナルデータベースのエンジンを拡張したもの。H2は、組み込み型およびサーバプロセス型をサポートしていますが、SQL4Gではデータベース上のデータをGoogle のBigTableに直接保存する。ただしSQL4Gを利用するまで、手間がかかりそうて、今回はあきらめる。

Google App Engine が PHP をサポートするから、そのうちSQL4G以外のもっと使い勝手がいい、Google のBigTableに直接保存できるミドルウェア、プラグインなど現れるかもしれない。

WordPress Brute Force Attacksにリソース使われない対策

4月頃から、WordPressを標的とする Brute Force Attacks が激しい!

自分のサーバも度々リソース使い果たされ、数度サービス停止に追い込まれました。

対策がとっても、更に大規模なアタックが押し寄せる。

WordPress公式サイトには、一応対策が書いてある。

http://codex.wordpress.org/Brute_Force_Attacks

しかしそれらの対策は、ハッキングされる危険が減るもので、サーバのリソースがたくさん使われることが変わりがない、リソース使い果たされる危険がまたある。

ネットでいろいろ調べるところ、ログイン自体を制限する方法が有効と考えられる。

早速.htaccess に下記のようにIP制限してみる。

RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^118\.9\.70\.195$
RewriteRule ^(.*)$ – [R=403,L]

なぜか効かない!そこでApacheの設定で、ログイン自体を制限する試みる。

<Files ~ “^wp-login.php”>
Order allow,deny
Deny from all
Satisfy All
</Files>
ErrorDocument 403 “Not acceptable”

確かアタックに効く!リソースも使われない。けど、使いたいときは、外さないとログインできない!

一層Basic認証と、IP制限を組み合わせしてみた。最終の形はこうでした。

<Files ~ “^wp-login.php”>
Order deny,allow
Allow from 118.9.70.195
Allow from 192.168.1
Deny from all

AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
require valid-user

Satisfy Any
</Files>
ErrorDocument 403 “Not acceptable”

これて、許容IPなら制限なし、その他IPからの場合Basic認証の画面がポップアップ。リソースも使われない対策できた。