自作プラグイン/googlegadgets.inc.php
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
**googlegadgets.inc.php [#d02cee78]
|RIGHT:100|LEFT:360|c
|~サマリ|google gadget for your website の埋め込み|
|~リビジョン|0.5|
|~対応バージョン|1.4.x|
|~投稿者|[[hnagoya@gmail.com]]|
|~投稿日|&new{2006-10-06 (金) 14:18:28};|
[[Google Gadgets For Your Webpage>http://www.google.com/i...
<?php
// googlegadgets.inc.php
// License: GPL v2
// $Revision: 0.5 $ $Date: 2006-10-10 18:53:09+09 $
// -----------------------------------------------------...
// Reference: http://www.google.com/ig/directory?synd=op...
// How to use: &googlegadgets(<script src="..."></script...
// -----------------------------------------------------...
// 誰でもこのプラグインを使ってよければ A を、そうでなけ...
//define(PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK, FALSE);...
define(PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK, TRUE); // B
function plugin_googlegadgets_init() {
// nop
}
// B が有効の場合のアクセス権チェック
// * pukiwiki がリードオンリー設定で運用されている
// * 該当ページが凍結されている
// * 該当ページが編集可能である
// のいずれかが成立していれば OK
function plugin_googlegadgets_securitycheck_ok() {
global $vars;
$page = $vars['page'];
return (PKWK_READONLY || is_freeze($page) || edit_auth(...
}
function plugin_googlegadgets_convert() {
return plugin_googlegadgets_sub(func_get_args());
}
function plugin_googlegadgets_inline() {
return plugin_googlegadgets_sub(func_get_args());
}
function plugin_googlegadgets_action() {
return plugin_googlegadgets_sub(func_get_args());
}
function plugin_googlegadgets_sub($a) {
global $vars;
if (PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK &&
!plugin_googlegadgets_securitycheck_ok()) {
return FALSE;
}
$m = array();
return preg_match('{^(<script\ src=
"http://gmodules.com/ig/ifr\?(...
></script>)$}x',
trim($a[0]), &$m) ? $m[0] : FALSE;
}
?>
- パッみたかんじ、XSS 脆弱性がありますね。(.*) で得る内容...
-- 単純に htmlspecialchars なんかでサニタイズしちゃうと安...
- しかし、許可HTML を制限してプラグインにHTMLを渡すという...
-- google gadgets は ''<script src="..."></script>'' とい...
- うーむ、管理者しか使えないように、凍結ページでのみ発動...
-- ということで「発動」条件のチェックを入れてみたのですが...
#comment
終了行:
**googlegadgets.inc.php [#d02cee78]
|RIGHT:100|LEFT:360|c
|~サマリ|google gadget for your website の埋め込み|
|~リビジョン|0.5|
|~対応バージョン|1.4.x|
|~投稿者|[[hnagoya@gmail.com]]|
|~投稿日|&new{2006-10-06 (金) 14:18:28};|
[[Google Gadgets For Your Webpage>http://www.google.com/i...
<?php
// googlegadgets.inc.php
// License: GPL v2
// $Revision: 0.5 $ $Date: 2006-10-10 18:53:09+09 $
// -----------------------------------------------------...
// Reference: http://www.google.com/ig/directory?synd=op...
// How to use: &googlegadgets(<script src="..."></script...
// -----------------------------------------------------...
// 誰でもこのプラグインを使ってよければ A を、そうでなけ...
//define(PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK, FALSE);...
define(PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK, TRUE); // B
function plugin_googlegadgets_init() {
// nop
}
// B が有効の場合のアクセス権チェック
// * pukiwiki がリードオンリー設定で運用されている
// * 該当ページが凍結されている
// * 該当ページが編集可能である
// のいずれかが成立していれば OK
function plugin_googlegadgets_securitycheck_ok() {
global $vars;
$page = $vars['page'];
return (PKWK_READONLY || is_freeze($page) || edit_auth(...
}
function plugin_googlegadgets_convert() {
return plugin_googlegadgets_sub(func_get_args());
}
function plugin_googlegadgets_inline() {
return plugin_googlegadgets_sub(func_get_args());
}
function plugin_googlegadgets_action() {
return plugin_googlegadgets_sub(func_get_args());
}
function plugin_googlegadgets_sub($a) {
global $vars;
if (PLUGIN_GOOGLEGADGETS_USE_SECURITYCHECK &&
!plugin_googlegadgets_securitycheck_ok()) {
return FALSE;
}
$m = array();
return preg_match('{^(<script\ src=
"http://gmodules.com/ig/ifr\?(...
></script>)$}x',
trim($a[0]), &$m) ? $m[0] : FALSE;
}
?>
- パッみたかんじ、XSS 脆弱性がありますね。(.*) で得る内容...
-- 単純に htmlspecialchars なんかでサニタイズしちゃうと安...
- しかし、許可HTML を制限してプラグインにHTMLを渡すという...
-- google gadgets は ''<script src="..."></script>'' とい...
- うーむ、管理者しか使えないように、凍結ページでのみ発動...
-- ということで「発動」条件のチェックを入れてみたのですが...
#comment
ページ名: