memo.xight.org

日々のメモ

カテゴリ : XOOPS

1ページ目 / 全1ページ

XOOPS Protector

Summary

以下の攻撃を防ぐためのXOOPS モジュール.

  - DoS
  - 悪意あるクローラー (メール収集ボットなど)
  - SQL Injection
  - XSS (一部のパターンのみ)
  - システムグローバル変数汚染
  - セッションハイジャック
  - ヌルバイト攻撃
  - ディレクトリ遡り指定
  - いくつかの危険なCSRF (XOOPS 2.0.9.2以下に存在するもの)

mainfile.php の変更

define('XOOPS_GROUP_ADMIN', '1');
define('XOOPS_GROUP_USERS', '2');
define('XOOPS_GROUP_ANONYMOUS', '3');

include( XOOPS_ROOT_PATH . '/modules/protector/include/precheck.inc.php' );
if (!isset($xoopsOption['nocommon'])) {
    include XOOPS_ROOT_PATH."/include/common.php";
}
include( XOOPS_ROOT_PATH . '/modules/protector/include/postcheck.inc.php');


Reference

XOOPS Cube公式サイト - モジュール / ハック - XOOPS Protector
http://jp.xoops.org/modules/mydownloads/singlefile.php?cid=6&lid=131

XOOPSのテーマ配布サイト

OCEAN-NET

XOOPSのオリジナルテーマを配布.
商用利用は 1テーマ 3000円

OCEAN-NET OFFICIAL SITE
http://hello.oceannet.jp/
OCEAN-NET - 商用利用の際のご案内
http://hello.oceannet.jp/license/
OCEAN-NET - デザイン工房 (商用利用のためのデモサイト)
http://labo.oceannet.jp/demo/

BCOOL

XOOPSのオリジナルテーマをCreative Commonsライセンスで配布.
商用利用は要相談.

BCOOL - デモサイト
http://demo.2bcool.net/
BCOOL - XOOPS テーマ ダウンロード
http://2bcool.net/modules/mydownloads/

XOOPS Cube のインストール

前提

http://example.com/xoops/ に XOOPS Cube をインストールしたい.
DocumentRoot は /var/www

ファイルを展開して /var/www/xoops にコピー

% tar xzvf xoops-2.0.13a-JP.tar.gz
# xoops-2.0.13a-JP /var/www/xoops

所有者の設定

% cd /var/www/xoops
# chown -R www-data:www-data *

ファイルの移動

# mv /var/www/xoops/html/* /var/www/xoops


XOOPS用のDBとユーザを作成

% mysqladmin -uroot create xoops
% mysql -uroot mysql
mysql> GRANT ALL PRIVILEGES ON xoops.* TO xoops@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit
% mysqladmin -uroot reload

インストール ウィザードページへのアクセス

http://example.com/xoops/ へアクセスすると…
http://example.com/xoops/install/index.php に自動リダイレクト.

インストール ウィザード トップページ

クリックして拡大

インストール ウィザード イントロダクション

クリックして拡大

ファイルのアクセス権のチェック

クリックして拡大

データベース,およびパス・URLの設定

クリックして拡大

データベース,およびパス・URLの設定の内容確認

クリックして拡大

mainfile.php の作成

クリックして拡大

パス・URLのチェック

クリックして拡大

データベース設定の確認

クリックして拡大

データベースをチェック

  以下のエラーが出た場合は 「データベース,およびパス・URLの設定」まで戻って設定をやり直し.
クリックして拡大
  正常に処理された場合は以下の表示
クリックして拡大

テーブルの作成

クリックして拡大

管理者ユーザの作成

クリックして拡大

データの生成

クリックして拡大

インストール完了

"サイト" をクリックすると XOOPS の画面が表示される.
クリックして拡大

インストール後,初めて管理者メニューを開くと,以下のような警告が出る.

クリックして拡大

# rm -rf /var/www/xoops/install
# chmod 644 /var/www/xoops/mainfile.php

TinyD と XF-Section の違い

TinyD

o カテゴリ機能が無い
o ファイル添付機能が無い

XF-Section

o カテゴリ機能が有る
o ファイル添付機能が有る

Reference

PEAK XOOPS Support&Experiment - TinyD 2.19
http://www.peak.ne.jp/xoops/modules/mydownloads/singlefile.php?cid=1&lid=18

SourceForge.jp - XOOPS XFsection
http://sourceforge.jp/projects/xfsection/
はっぴぃ・りなっくす - カテゴリ別記事-XFsection 1.06
http://linux.ohwada.jp/modules/xfsection/article.php?articleid=263
はっぴぃ・りなっくす - サポート - XOOPS XFsection
http://linux.ohwada.jp/modules/newbb/viewforum.php?forum=3&PHPSESSID=1a6e0020330c66f3ae816cf0ab57de62

via

XOOPS Cube公式サイト - 旧フォーラム - TinyDとXF-Sectionの違い
http://jp.xoops.org/modules/newbb/viewtopic.php?viewmode=thread&topic_id=7774&forum=17&post_id=38417#38417

XOOPS Cube

Summary

近年のマルチバイト文字ユーザーに不利な状況を打開すべく,新プロジェクト発足.
XOOPS Cubeは,日本語などのマルチバイト環境への対応を常に優先課題として開発される.

コンセプトとしては
「Secure(セキュリティの確保)」
「Simple(コア本体の軽量化)」
「Scalable(拡張性)」
の3つの「S」が掲げられている.

Reference

http://www.itmedia.co.jp/enterprise/articles/0507/20/news103.html
XOOPS Cube 公式サイト
http://jp.xoops.org/

XOOPS検索モジュールを利用する

php.iniに以下を記述

[PHP]
register_globals = Off
display_errors = On
default_charset = "EUC-JP"
file_uploads = On

[mbstring]
mbstring.encoding_translation = On
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none


.htaccessを利用するなら以下を記述

php_flag register_globals OFF
php_value default_charset EUC-JP
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation ON
php_value mbstring.detect_order ASCII,JIS,EUC-JP,SJIS,UTF-8
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.http_input auto
php_value mbstring.http_output pass
php_value mbstring.substitute_character none
php_value output_handler none

- Reference
XOOPS検索モジュール
http://www.suin.jp/modules/mydownloads/viewcat-cid-6.asp
SourceForge.jp - XOOPS - XOOPS free wiki - HOWTO/インストール/Linux/3.PHP

レンタルサーバーで(apacheを使用している) .htaccessによる日本語環境設定の


http://xoops.sourceforge.jp/wiki/free/?HOWTO%2F%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%2FLinux%2F3.PHP#vea87ecd

WordPressの 改行 -> <br>タグ 変換

Summary

  勝手に改行を<br>タグに変換するので,やたら空行が目立つ.

解決!

/path/to/xoops/modules/wordpress/wp-includes/functions-formatting.php を変更

preg_replace でタグを置換している箇所に ignore case を付加
58-81行目
function wpautop($pee, $br = 1) {
	$pee = $pee . "\n"; // just to make things a little easier, pad the end
	$pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee); // Space things out a little
	$pee = preg_replace('!(<(?:table|thead|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)!i',"\n$1", $pee);
	$pee = preg_replace('!(</(?:table|thead|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])>)!i',
"$1\n", $pee);
	$pee = preg_replace("/(\r\n|\r)/", "\n", $pee); // cross-platform newlines
	$pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates
	$pee = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "\t<p>$1</p>\n",$pee); // make paragraphs, including one at the end
	$pee = preg_replace('|<p>\s*?</p>|i', '', $pee); // under certain strange conditions it could create a P of entirely whitespace
	$pee = preg_replace('!<p>\s*(</?(?:table|thead|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*</p>!i',"$1", $pee); // don't pee all over a tag
	$pee = preg_replace("|<p>(<li.+?)</p>|i", "$1", $pee); // problem with nested lists
	$pee = preg_replace('|<p><blockquote([^>]*)>|i',"<blockquote$1><p>", $pee);
	$pee = str_replace('</blockquote></p>', '</p></blockquote>',$pee);$pee);
	$pee = preg_replace('!<p>\s*(</?(?:table|thead|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)!i',"$1", $pee);
	$pee = preg_replace('!(</?(?:table|thead|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*</p>!i',"$1", $pee);
	if ($br) $pee = preg_replace('|(?<!<br />)\s*\n|i', "<br />\n",$pee); // optionally make line breaks
	$pee = preg_replace('!(</?(?:table|thead|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*<br/>!i', "$1", $pee);
	$pee = preg_replace('!<br/>(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)!i', '$1', $pee);
	$pee = preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1',$pee);
	$pee = preg_replace('!(<pre.*?>)(.*?)</pre>!ise', "stripslashes('$1') .  clean_pre('$2')  . '</pre>' ", $pee);

	return $pee;
}


Patch

functions-formatting.phpのパッチ

Reference

  WordPress Japan - 改行のBR変換について
  http://phpbb.xwd.jp/viewtopic.php?p=990

XOOPSを使ってみる

便利なモジュール

  - FormMail
    カスタマイズ可能なフォーム.
    Liaiseモジュール1.0をベースに開発されたメールフォームモジュール「formulaire v1.0」をベースに開発
    http://malaika.s31.xrea.com/
  - WordPress ME
    WYSIWYG なエディタ
    WordPress (PHP+MySQLベースのブログツール)の日本語版
    http://www.kowa.org/

Reference

  XOOPS2 Wiki - ETC/モジュール情報/メール
  http://xoops.sourceforge.jp/wiki/xoops2/?ETC%2F%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%BE%F0%CA%F3%2F%A5%E1%A1%BC%A5%EB

XOOPS で WYSIWYG なエディタが使いたい

XFSection

SPAW

  http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_about

Koivi

FCKEditor&HTMLArea

htmlArea for XOOPS

Reference

  元祖 サトシのブログ - Webベースの WYSIWYG エディタ SPAW
  http://www.randynetwork.com/blog/155
  XOOPS Cube公式サイト - 旧フォーラム
  http://jp.xoops.org/modules/newbb/viewtopic.php?topic_id=6499&forum=17
  はっぴぃ・りなっくす - サポート - XOOPS XFsection - NetscapeでWYSIWYGエディター使用可能?
  http://linux.ohwada.jp/modules/newbb/viewtopic.php?topic_id=125
  Genii Software | WebEditors
  http://www.geniisoft.com/showcase.nsf/WebEditors