それでもまだ「かんたんログイン」実装しますか?

今回は携帯サイトのセキュリティーに対して書きたいと思います。
携帯サイトで何らかのWEBシステムを構築しユーザー認証が必要な場合「かんたんログイン」を実装しているサイトは多々あるともいます。
当社でも携帯対応のWEBシステムを作成する際お客様から「かんたんログイン」を実装したいと要望されることが良くあります。
お客様からすればユーザーの負担を極力減らし便利に利用して頂きたいという思いがあるのだと思いますが、当社では今の所1件も導入していません。

なぜならば「セキュリティー上100%安全と言えない」からです。

この理由を説明するとかなり難しいお話をしないといけないのでお客様を納得させるのは大変なのですが、@ITにて「間違いだらけの「かんたんログイン」実装法 」という記事が掲載されましたので紹介しておきます。

間違いだらけの「かんたんログイン」実装法
http://www.atmarkit.co.jp/fsecurity/rensai/keitaiweb02/keitaiweb01.html

やはりこの記事を読んでも内容はプログラムやネットワーク、サーバ構築などの技術を理解していない人にはかなり難しいと思うので100%理解してもらうのは無理だとは思いますが「危ないんだな」と思っていただくことは可能ではないでしょうか?
「かんたんログイン」を実装しようかなと思われていた方はぜひご一読いただければと思います。
大事な顧客の個人情報などを流出したら大変なことになりますので・・・

Smarty3でdefault_modifiersを使用する際の注意点

Smarty3が昨年の11月に正式リリースされて12月にはSmarty 3.0.6がリリースされ
公式発表では表示速度がバージョン2に比べると2倍~5倍との事なので早速
使用してみました。

ほとんど修正する事もなくバージョン2で使用していたコードも問題なく動くのですが
数点注意点が有ったので紹介しておきます。

今回の注意点は下記のようにdefault_modifiersを使用してエスケープ処理をしている場合の
問題点です。

$this -> default_modifiers = array('escape:"html"');

このようにデフォルトでエスケープ処理を施している場合、
バージョン2ではエスケープ処理を施さない場所が有った場合
{$var|smarty:nodefaults}

のようにしてクリアしていたのですがバージョン3ではエラーになります。
バージョン3では下記のように書きます。
{$vars nofilter}

又default_modifiersを使用してエスケープ処理を行っているとそのままでは
デバッギングコンソールが利用できません。
デバッギングコンソールを利用するにはdebug.tpl内の下記の3ヶ所に上記と同じように
「nofilter」を記入してデフォルトのエスケープ処理を回避すると利用できます。

<table id="table_assigned_vars">
    {foreach $assigned_vars as $vars}
       <tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
       <th>${$vars@key|escape:'html'}</th>
       <td>{$vars|debug_print_var:0:1000 nofilter}</td></tr>
    {/foreach}
</table>

<h2>assigned config file variables (outer template scope)</h2>

<table id="table_config_vars">
    {foreach $config_vars as $vars}
       <tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
       <th>{$vars@key|escape:'html'}</th>
       <td>{$vars|debug_print_var nofilter}</td></tr>
    {/foreach}

</table>
</body>
</html>
{/capture}
<script type="text/javascript">
{$id = $template_name|default:''|md5}
    _smarty_console = window.open("","console{$id}","width=680,height=600,resizable,scrollbars=yes");
    _smarty_console.document.write("{$debug_output|escape:'javascript' nofilter}");
    _smarty_console.document.close();
</script>

ちなみに5行目の「debug_print_var:0:1000」はデバッギングコンソール内で変数の出力はデフォルトで
40文字で省略されるのですがもっと長く表示したい場合などに修正してください。
上記の例では1000文字まで表示されます。

Illustrator9.02をWindows7 64bitにインストール

Illustrator9.02をWindows7 64bitにインストールした時の覚書です。

Windows7にIllustrator9をインストールしようとしてもどうしてもだめだったので色々調べて挑戦したらなんとかインストール出来ました。
※ 正確には最後の方ででエラーでこけたんですが今の所問題無く使用できています。

  1. インストールCDから全てのフォルダ&ファイルをローカルのハードディスクにコピー
  2. Adobe Illustrator 9.0.2フォルダ内のSetup.exeを右クリックしプロパティーをクリック、互換性タブ内の互換モードをWindowsXP service Pack3に設定
  3. Setup.exeをダブルクリックしてインストール
 

これでインストールは出来るんですが初回起動時に「メモリーが足りません」見たいなエラーが出るのでこれを回避
インストールと同じようにイラストレーターの実行ファイルを互換モードで起動するようにするだけ。

  1. 「C:\Program Files(x86)\Adobe\Illustrator 9.0.2\Illustrator.exe」を右クリックし、互換性タブ内の互換モードをWindowsXP service Pack3に設定
  2. ショートカット又は実行ファイルをダブルクリックして起動
  3. ユーザーアカウント制御のダイアログが開くが「はい」で起動(グラフィックモードの変更確認なので問題なし)
 

これで問題なく起動しますがいざ文字を入力すると文字が表示される部分が白くて何も見えません。(MSゴシック、MS明朝)
これはWindowsVISTA以降文字コードセットが変更されたためです。
XPよりフォントをコピーする事で解消します。

  1. XPマシンののフォントフォルダ「C:\WINDOWS\Fonts」よりmsgothic.ttcと msmincho.ttcをコピーしてくる。
  2. Windows7マシンの次のフォルダ「C:\Program Files(x86)\Adobe\Illustrator 9.0.2\必須ファイル\Fonts」に上記フォントファイルを貼り付け。
 

これでフォントにMSゴシック、MS明朝を使用しても問題なく表示されるようになります。

以上

Windows環境phpでSmartyを使うとWarning Error

ウィンドウズにxamppをインストールしSmartyテンプレートエンジンを利用した開発をする時の注意点

WindowsでSmartyを使うと以下のようなErrorが出る時が有る
だいたいテンプレートを新規作成した後に発生する。
unlink(./view/templates_c/pc\%%48^484^484984CD%%index.tpl.php) [function.unlink]: No such file or directory

その場合Smartyの下記のファイルを編集して対処
smarty/internals/core.write_file.php

44行目の@unlink($params['filename']);を

下記のように修正
if (is_file($params['filename'])){
@unlink($params['filename']);
}

IE6,IE7,IE8の表示チェック

現在ホームページ制作でのIEのバージョンの違いによる表示補償対象としては
IE6以上を対象にしている事が多いと思われますがFirefoxやopera、Safari等に比べると
IE6~IE8ではCSSの解釈などの違いから表示が大きく崩れることが多いと思います。

制作段階では色々なバージョンで表示テストを行うわけですが、マイクロソフとから
Expression Web SuperPreview for Windows Internet Explorer」という
IE6~IE8の表示テストが出来るツールが発表されています。

Expression Web3にバンドルされるらしいですがダウンロードして単体利用できるようです。

並べて比べたり重ねて位置関係のチェックが出来たりとなかなか良くできています。

Microsoft Expression Web SuperPreview

Expression Web SuperPreview for Windows Internet Explorer
IETesterでも同じようにヴァージョンごとの表示チェックが出来ます。
IETesterではIE5.5のチェックもできます。

IETester

IETester
弊社では以前からIETesterをホームページ制作の講習会等で教える時も利用してきましたがこれからは両方使用してみたいと思います。