RSSリーダーで購読する




フィードメーター - CyberAgent SEO Information


track feed




あわせて読みたいブログパーツ

2008-12-10 16:50:11

WEBサイトリニューアルに伴うメンテナンス画面の設定

テーマ:WEBサイト制作
WEBサイトのリニューアルの際、一定時間サイトクローズを
行うということはよくあります。

そんな時にベストな方法としては、

メンテナンス中ステータスコード503を返す

です。

こういう時に色々な状況が考えられますが、
少し厄介な状況として、

・既存コンテンツは消さずにリニューアルしたい(リスクヘッジ)
・自分からはちゃんとコンテンツを見れるようにしたい
・オリジナルのメンテナンス画面を用意したい

ということが考えられます。

こうなってくると、度々ご紹介しているmod_rewriteの出番です。

まず、上記の要望を満たすために、どのような処理を入れるかを考えます。

1.サイト内の全てのURLへのアクセスを、リダイレクトさせる
2.特定IPアドレスからのアクセスはリダイレクトさせない
3.自分で作成したメンテナンス画面を作成して、リダイレクト先に指定
4.リダイレクト先のphpで、503ヘッダを出力させる

さて、具体的に処理を書いてみましょう

RewriteEngine on
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1$
RewriteCond %{REQUEST_URI} !^/503.php$
RewriteBase /
RewriteRule ^.*$ /503.php [L]

1行目はおなじみの、オマジナイです。

2行目ですが、ここでIPアドレス(127.0.0.1)を指定します。
アクセスした来たユーザーのIPが127.0.0.1の場合は、
RewriteRuleを適用しませんという意味です。

3行目はURLがhttp://xxx.xxx.xxx/503.phpの時は、
下のRewriteRuleを適用しないという意味です。
無限ループを回避しています。

4行目もオマジナイだと思ってください。

5行目ですが、全てのURLへのアクセス(*)を、
リライトさせるという意味になります。

これで、サイトへの全てのアクセスが503ページになりますが、
このままではヘッダが503にならず、クローラーには
リニューアル中だということを認識されません。

そこで、この例で503ページをPHPファイルにしている意味が出てきます。

このPHPファイルの先頭(処理が通るところならどこでも良いです)で、
以下のスクリプトを書いてください。

header ("HTTP/1.0 503 Service Temporarily Unavailable");

これでOKです。

あとは、503.phpにhtmlを直接書くなり、他のhtmlファイルを
includeするなりで、目的の条件もクリアできます。

ただ、これは私の記事ではいつものことですが、
Apache+PHPの環境でなければ実現できないことに注意してください。


(坪 昌史)

2008-09-22 22:28:33

どのようなリンクが目を引くか?

テーマ:WEBサイト制作
このブログをご覧になられている方の中には、SEOに興味をもたれている方、
SEOが必要な方、SEOを生業とされている方が多数だと思いますので、
「検索エンジンに対して自分のサイトがどう見えるか?」を強く意識されている方は
多いと思います。

では、ユーザーに対しての見え方はどうでしょうか?

SEOmoz に、リンク表示の仕方に関して面白い記事がありましたので、
ここでも紹介したいと思います。

このエントリーでは、「リンクはリンクに見えるように設定すべき」と語られており、
その結論に至るための例を3つ紹介しています。

1.コンテンツに見えるリンク




2.広告に見えるリンク




3.リンクに見えるリンク



この3つを比較して、どのように感じますか?

1のサイトのリンクは、その形式にもリンクの表示方法が種類もあり、
かつ、リンクが(リンクされていない)テキストと同じフォントで表示されているので、
ユーザーがカーソルを合わせないとリンクとはわからないと指摘しています。

2のサイトは両端のGoogle広告と似たような形式で、広告と認識されてしまう事を危惧しています。

ここで良い例として挙げられている3のリンクは、
古典的な青文字のアンダーラインがついたものです。

一目でリンクとわかり、ユーザーにやさしい作りとなっていると紹介されています。

この筆者が言う所では、リンクを入れる際に気をつけなければならない事として、
・ポイントしなくてもわかる事
・アンダーラインがある事
・青文字にする事
・適切なアンカーテキストが入っている事(「こちら」や「ここをクリック」ではなく。)
・広告との区別が容易である事

を挙げています。

そうする事が全てではありませんが、上記を意識してリンク設置をする事で、
意図した所へユーザーを導ける事もあるのではないでしょうか?

エントリーの最後に、オーストリアのエレベーターの事例を使って
わかりやすく説明していますので、ぜひご覧になってみて下さいね。

真面目な内容ですが、思わず笑ってしまいます。


[参照・引用]
Links Should Really Look Like Links /SEOmoz

(石田)
2008-08-22 18:36:38

セキュアなWEBサイト制作(1) -クロスサイト・スクリプティング-

テーマ:WEBサイト制作


今回から、WEBサイトを制作する際、セキュリティ面で注意しなければいけない
事柄をご紹介していきます。

第1回は、「クロスサイト・スクリプティング」です。

2chを代表とする掲示板型のサイトや、個人情報などを登録するようなサイトでは、
ユーザーが入力した内容を、スレッドや入力内容確認画面で表示させるといった
仕組みが多く使われています。

このようなサイトは、クロスサイト・スクリプティングによる攻撃に注意して
WEBサイトを構築しなければいけません。

では、クロスサイトスクリプティングとはどのような攻撃でしょうか。
例を出して解説いたします。

まず、以下のようなページを用意します。


画像1
「表示」ボタンをクリックすると、以下のようなプログラムが呼び出され、
テキストエリアに入力した内容がそのまま表示されます。

<?php

echo $_POST['inp'];

?>

たとえば、テキストエリアに「SEO」と入力して「表示」ボタンをクリックすると、
「SEO」とだけ表示されたページが開きます。

では、ここに下記のような文字を入力し、「表示」ボタンをクリックするとどうなるでしょう。

<script type="text/javascript">
alert("ウイルス");
</script>

javascriptを使ったことがある方であれば、分かりますね。


画像3


このように、javascriptが実行され、アラートBOXが表示されてしまうのです。

javascriptを埋め込むことができてしまうと、悪意のあるユーザーは自分で作成した
悪意のあるサイトにアクセスさせ、そこでクッキーなどの情報を採取するというような
ことができてしまいます。

では、この問題を回避するために、どのようなことができるでしょうか。

PHPには、こういった問題を解決するような関数が用意されています。
その例として、htmlspecialchars関数や、strip_tags関数が挙げられます。

htmlspecialchars関数は、'<'や'>'といった記号を、'&lt;'や'&gt;'のような
特殊な文字に置き換えます。
このような特殊な文字は、ブラウザ上は'<'、'>'のように見えますが、
タグとしての効果は無くなります。

実際に置換されているかどうかは、ブラウザの「ソースを表示する」機能を
使っていただければ分かると思います。


一方、strip_tags関数は、htmlタグを全て切り取ってしまいます。

では、これらの関数を使った以下のようなプログラムを実行してみます。

<?php

echo htmlspecialchars($_POST['text']);

echo "<br><br>";

echo strip_tags($_POST['text']);

?>



画像4



いかがでしょうか。javascriptが効かなくなり、アラートBOXが出なくなりましたね。
ちなみにソースを表示してみると、
&lt;script type=&quot;text/javascript&quot;&gt;
alert(&quot;ウイルス&quot;);
&lt;/script&gt;


alert("ウイルス");

のようになり、上側は記号が特殊文字に置換され、下側はscriptタグごと削除されていることが
分かります。

このように、WEBサイトにはセキュリティ面で脆弱になってしまう要素が様々な部分に存在しますが、
プログラム側で回避できるような機能が用意されています。

WEBサイト制作時には常に様々な自体を想定して、サイトを構築する必要があるでしょう。

(坪 昌史)

【参考・引用】

・ThinkIT
http://www.thinkit.co.jp/cert/tech/13/2/2.htm

・IPA 情報処理推進機構
http://www.ipa.go.jp/security/vuln/20060131_websecurity.html

Amebaおすすめキーワード