アーカイブ

‘Tips’ カテゴリーのアーカイブ

[EC Cube] scriptタグが#script tag escaped#に変換されないようにカスタマイズ

2010 年 1 月 12 日 snufkin コメントはありません

商品登録の時や編集の時、「詳細-メインコメント」欄に<script>のタグを使おうとすると「#script tag escaped#」に変換されます。これはXSSを防ぐための機能なのですが、商品紹介ページでjQueryなどを使ってみた目にインパクトを与えたり、機能を追加したりしたくなったのでちょっといじってみました。

手を加えるファイルは3つです。
/data/Smarty/templates/xxxx/detail.php

Line.54 辺り
■変更前
<p><!–★詳細メインコメント★–><!–{$arrProduct.main_comment|nl2br}–></p>

■変更後
<p><!–★詳細メインコメント★–><!–{$arrProduct.main_comment|nl2br|smarty:nodefaults}–></p>

/data/Smarty/templates/default/admin/products/confirm.php
Line.255 辺り
■変更前
<textarea name=”main_comment” value=”<!–{$arrForm.main_comment|escape}–>” maxlength=”<!–{$smarty.const.LLTEXT_LEN}–>” style=”<!–{if $arrErr.main_comment != “”}–>background-color: <!–{$smarty.const.ERR_COLOR}–><!–{/if}–>”  cols=”60″ rows=”8″ class=”area60″><!–{$arrForm.main_comment|escape}–></textarea><br /><span class=”red”> (上限<!–{$smarty.const.LLTEXT_LEN}–>文字)</span></td>
■変更後
<textarea name=”main_comment” value=”<!–{$arrForm.main_comment|escape}–>” maxlength=”<!–{$smarty.const.LLTEXT_LEN}–>” style=”<!–{if $arrErr.main_comment != “”}–>background-color: <!–{$smarty.const.ERR_COLOR}–><!–{/if}–>”  cols=”60″ rows=”8″ class=”area60″><!–{$arrForm.main_comment|escape|smarty:nodefaults}–></textarea><br /><span class=”red”> (上限<!–{$smarty.const.LLTEXT_LEN}–>文字)</span></td>
/data/Smarty/templates/default/admin/products/confirm.php
Line.42 辺り
■変更前
<!–{foreach key=key item=item from=$arrForm}–>
<input type=”hidden” name=”<!–{$key}–>” value=”<!–{$item|escape}–>”>
<!–{/foreach}–>
■変更後
<!–{foreach key=key item=item from=$arrForm|smarty:nodefaults}–>
<!–{if $key == “main_comment”}–>
<input type=”hidden” name=”<!–{$key}–>” value=”<!–{$item|escape|smarty:nodefaults}–>”>
<!–{else}–>
<input type=”hidden” name=”<!–{$key}–>” value=”<!–{$item|escape|script_escape}–>”>
<!–{/if}–>
<!–{/foreach}–>
Line.196 辺り
■変更前
<!–{$arrForm.main_comment|nl2br}–>
■変更後
<!–{$arrForm.main_comment|nl2br|smarty:nodefaults}–>
これで「詳細-メインコメント」欄内でjavascriptが利用できるようになりました。
XSSには注意しましょう。
Line.54 辺り
■変更前
<p><!–★詳細メインコメント★–><!–{$arrProduct.main_comment|nl2br}–></p>
■変更後
<p><!–★詳細メインコメント★–><!–{$arrProduct.main_comment|nl2br|smarty:nodefaults}–></p>
タグ: ,
カテゴリー: Tips タグ: ,

[concrete5] ヘッダから”generator”のメタタグを削除

2009 年 10 月 23 日 snufkin コメントはありません

concrete5のデフォルトだと出力されたページのヘッダに

<meta name="generator" content="concrete5 - xxx" />

という感じで自動的にconcrete5のバージョン情報が入ります。

セキュリティ的にもあまりよくなさそうなので、このメタタグが出力されないようにカスタマイズします。

/concrete/elements/header_required.php

/elements/header_required.php

にコピーして40行目あたりの

<meta name="generator" content="concrete5 - <?php echo APP_VERSION ?>" />

を削除します。

このようにすると優先的に「/elements/header_required.php」が読み込まれます。
これを「オーバーライド」といい、どのファイルを編集したか(カスタマイズしたか)がすぐわかり、アップグレードの時も上書きされずに住みます。

タグ: ,
カテゴリー: Tips, concrete5 タグ: ,

google の jQuery を読み込む

2009 年 7 月 28 日 snufkin コメントはありません

Google AJAX Libraries API というものがあります。

jQuery とか Prototype とかのJavaScript ライブラリが特定の URL から読み込めます。
サイトを作るたびにライブラリをアップロードしなくても、いつも決まったURLから呼び出せるのでとても便利です。

しかもホストしているのはGoogleで、次のような主要なJavaScript ライブラリが使えます。

  • jQuery
  • jQuery UI
  • Prototype
  • script.aculo.us
  • MooTools
  • Dojo
  • SWFObject
  • Yahoo! User Interface Library(YUI)

Google がホストしてるのに YUI も使えるところがステキですね。

使い方は、

    <script src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("jquery", "1.3.1");
        google.load("jqueryui", "1.5.3");
        google.load("prototype", "1.6.0.3");
        google.load("scriptaculous", "1.8.2");
        google.load("mootools", "1.2.1");
        google.load("dojo", "1.2.3");
        google.load("swfobject", "2.1");
        google.load("yui", "2.6.0");
    </script>

のようにするだけ。
google.load() の二つ目の引数は各ライブラリのバージョンです。

バージョンの細かい指定方法はこのへんに詳しく書いてあります。

タグ: , , , ,
カテゴリー: Tips, web製作 タグ: , , , ,

[ケータイ] スパム対策

ここ数週間、急にケータイへのスパムメールが増えた。
いつも同じような時間に同じようなタイトルのメールが届く。
即削除・・・なんだけど、ケータイがなるたびにいちいち反応するのに疲れた。

auのサイトで調べたら、対策がいくつか載っていた。
とりあえず「ドメイン認証規制」にしてみた。

しばらく様子をみることにする。

タグ: , , ,
カテゴリー: Tips タグ: , , ,

concrete5 ログインページのカスタマイズ

2009 年 6 月 23 日 snufkin コメントはありません
/themes

/concrete/themes/core/concrete.php

をコピー。
つまり

/themes/core/concrete.php

ができあがる。
それをいじるとhtmlのヘッダやページ左上部のconcrete5のロゴ画像などを変更できる。

中身は

/concrete/single_pages/login.php

/single_pages

にコピーして編集。

タグ: , ,
カテゴリー: Tips, concrete5 タグ: , ,

IllustratorとMac(言語環境:英語)

2009 年 6 月 19 日 snufkin コメントはありません

CS4 Web PREMIUM買っちゃった。Macromedia STUDIO 8 からアップグレード。

イラレとフォトショも入ってていい感じ。

でも言語環境を英語にしているMacだと、イラストレータが使えない。
起動中にいくつかダイアログが出て、メニューバーが化ける。
つかえないなぁーと思ってたんだけど、ググってみたらIllustratorのGet InfoでLanguageからJapanese以外のチェックを外すといいということがわかった。

やってみたらほんとに使えるようになった。

何の意味があるの?

同じような問題が Flash CS4 にもある。
こっちは起動前に「このバージョンのFlashは、現在の言語設定では使用できません。このアプリケーションは終了します。」と出る。

こっちはググっても解決策が見つからなかった。

誰か知りませんか。

タグ: , ,
カテゴリー: Tips, software タグ: , ,

concrete5 日本語版をcoreserverにインストール

2009 年 4 月 25 日 snufkin コメントはありません

前から気になっていたconcrete5

mynets の usagi projectがついにconcrete5日本語版 5.3.0を公開したので早速coreserverにインストールしてみました。

XREA、CORESERVERへのインストールガイド」というページがあり、指示に従って進めましたが、「6.インストール情報の入力」でつまずきました。

インストールディレクトリにアクセスすると、session関連で「許可がありません」というエラーでした。
tmpディレクトリにアクセスできないという内容だったので、「.htaccess」に次の一文を追加して、tmpディレクトリを作成。書き込み権限を与えて再度アクセスすると、問題なくインストールできました。

php_value session.save_path /virtual/MYID/tmp/

これで心おきなく試せます。

タグ: , , ,
カテゴリー: Tips タグ: , , ,

[mac]QuickSilverが起動できるようになりました

quicksilver以前、突然QuickSilverが起動しなくなってしまったと書きましたが、解決方法が見つかりました。

参考にしたのはこちらのサイトこの記事です。

それによると、$HOME/Library/Application Support/Quicksilver/Shelves/QSPasteboardHistory.qsshelf が肥大化してしまっているのが原因のようで、コンソールから

% cd ~/Library/Application\ Support/Quicksilver/Shelves/
% rm QSPasteboardHistory.qsshelf

とすると何事もなかったようにQuickSilverが起動できるようになりました。ありがたい!
記事元に感謝します。

タグ: ,
カテゴリー: Tips, software タグ: ,

coreserverでwordpressのプラグインの自動アップグレード

coreserver

coreserverではphpデフォルトでsafemodeがオンになっているので、wordpress(に限らずphpを使うアプリ-concrete5とか-)を動作させるとエラーが出たりします。

とても便利なプラグインの自動アップグレードも、coreserverのデフォルトの状態だと、次のようなエラーが出て使えません。

Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is YOURUID is not allowed to access /tmp owned by uid 0 in /virtual/USERID/public_html/wp-admin/includes/file.php on line 174

Warning: fileowner() [function.fileowner]: SAFE MODE Restriction in effect. The script whose uid is YOURUID is not allowed to access /tmp owned by uid 0 in /virtual/USERID/public_html/wp-admin/includes/file.php on line 628

Warning: fileowner() [function.fileowner]: stat failed for /tmp/xxxxxxxxxx in /virtual/USERID/public_html/wp-admin/includes/file.php on line 628

Warning: unlink() [function.unlink]: SAFE MODE Restriction in effect. The script whose uid is YOURUID is not allowed to access /tmp owned by uid 0 in /virtual/USERID/public_html/wp-admin/includes/file.php on line 630

これを回避するにはwp-adminの直下に次のような内容の.htaccessを置くとよい

<Files update.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
タグ: , , , ,

WordPressの年ですか

2009 年 1 月 6 日 snufkin コメント 2 件

WordPress

なんだか最近MovableTypeからWordPressに移行する方が多いですね。
百式の田口さんとかakiyan.comのakiyanさんとか。(田口さんは現時点ではIDEAxIDEAを移行させていて様子を見ながら百式とかも移行するらしい)

こうして著名な方々がWordPressを使い始めると、便利な使い方やプラグインなんかが紹介されそうで期待してしまいます。

すでに

投稿記事中にコメントタグがあると、表示時にデザインが崩れる

などという情報も出てきましたし、楽しみです。

versionが2.7になって管理画面がさらにわかりやすくなったので、MTとの差が顕著になったように思います。

WordPressはMTと違って動的に表示しますので、アクセスの多いサイトでは田口さんのように苦労することもあるかとは思いますが、使いやすさでは圧倒的にWordPressが勝っているのではないでしょうか。

WordPressのテーマ・プラグインの多さやカスタマイズの簡単さはもう手放せません。
海外ではMTよりも圧倒的にWordPressが人気だそうですが、今年あたりからは日本でもWordPress人気が高まってくるのでしょうか。
本当に楽しみです。

タグ: ,
カテゴリー: Tips, wordpress タグ: ,