Categories
SugiBlog ホームページ制作・システム開発

「HaCkeD by SA3D HaCk3D」WordPressの改ざん

WordPressの脆弱性を突いて、記事を改竄される事態が多数発生しています。
名の知れた有名所のサイトも被害にあっているのを見ました。

当サイトでも最新記事が改竄されていました。
日時は2月5日の10時頃。

その時の状態がこちら

問題があるのはWordPressの4.7.0と4.7.1だそうです。
対策がまだの方は最新版の4.7.2にアップデートしましょう。

参考URL:WordPress の脆弱性対策について:IPA 独立行政法人 情報処理推進機構
https://www.ipa.go.jp/security/ciadr/vul/20170206-wordpress.html

215 views

XML-RPC WordPress APIで記事を投稿

The Incutio XML-RPC Library for PHP
http://scripts.incutio.com/xmlrpc/
「Download the Library」をクリックしダウンロードします。

解凍すると「php-ixr-1.7.4」というフォルダーに「IXR_Library.php」というファイルがありますので
このファイルをインクルードするだけです

ライブラリをインクルード

include_once("php-ixr-1.7.4/IXR_Library.php");

投稿先アドレスを引数としてインスタンスを生成します。

$client = new IXR_Client("http://www.example.jp/xmlrpc.php");

WordPressのユーザー名とパスワードを設定します。

$wp_username = "username";
$wp_password = "password";

投稿の処理

$status = $client->query(
    "wp.newPost", //使うAPIを指定(wp.newPostは、新規投稿)
    1,            //ブログID 通常は1、マルチサイトの場合は変更が必要
    $wp_username, //ユーザー名
    $wp_password, //パスワード
    array(
        "post_author" => 1,                        //投稿者ID 未指定の場合、投稿者名なしになります
        "post_status" => "publish",                //投稿状態
        "post_title" => "テスト投稿です。",        //タイトル
        "post_content" => "テスト投稿本文です。",  //本文
        "terms" => array("category" => array(1)),  //カテゴリ
    )
);

if(!$status){
    die("エラー! - ".$client->getErrorCode()." : ".$client->getErrorMessage());
} else { 
    $post_id = $client->getResponse(); //返り値は投稿ID
}

続きを読む…»

550 views

WordPress テーマの一覧を取得

日本語の公式リファレンスが未記入だったので、覚書の意味も含めて書きたいと思います。

WordPressにて、現在インストールされているテーマの一覧を表示する方法です。
wp_get_themesという関数を使用します。

戻り値に各テーマの情報を連想配列で返してくれますので、ループして情報を取り出すことができます。

$themes = wp_get_themes();
print_r($themes);

続きを読む…»

377 views

WordPress管理画面のサイドバーレイアウトが崩れる

Chromeで表示したWordPressの管理画面で、サイドバーメニューのレイアウトが崩れるという問題が発生しているようです。

WordPressとChromeのバージョンの組み合わせによって発生するようですが、
原因はWordPressではなくChromeの問題らしいです。
私は以下の方法で解決しました。

スリミングペイントを無効にする

Chromeでchrome://flags/#disable-slimming-paintを開きます。
「スリミングペイントを無効にする」を有効にします。
Chromeを再起動する。

343 views

WordPress ユーザー情報の取得

get_userdata関数を使用すればユーザー情報を取り出すことができます。

例)ユーザーのプロフィール情報があれば表示

$user_data = get_userdata(1);

if(!empty($user_data->description)) {
    print $user_data->description;
}

その他、取得できる情報

ユーザー名 user_login
ユーザーレベル user_level
ユーザーID ID
first_name
last_name
ニックネーム nickname
プロフィール情報 description

更に他にも取得できる情報があります。
詳しくは公式リファレンスをご覧ください。
http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_userdata

300 views