開発中のブログ名決定 mubon-blog
カテゴリー:mubon-blog
今までブログを開発してきましたが名前をつけてなかったのでここで名前をつけることにします。
名前は、、、、。
mubon-blogです!
mubはmulti-user-blogの略です。
最後のnはnanbuwksからきたという説とnoriからきたという説があります。
oはmubnだと発音しにくいのでなんとなくいれておいたという説が濃厚です。
それではこれからも開発をつづけていくのでmubon-blogをお願いします!
なお過去の記事やカテゴリーの既述を変更しておきました。
mubon-blogのパーマネントリンクの書式について
カテゴリー:mubon-blog
現在mubon-blogの各記事のパーマネントリンクの書式は以下のようになっています。
http://www.manngareview.com/blog1/detail.php?no=33
blog1の1の部分がユーザのIDになっています。
no=33の33の部分が記事のIDになっています。
よって現在パロメータの数は1つになっています。
現在SEO対策について調査、検討中なのでこの仕様は変更する可能性があります。
ブログアップデート 4/19
カテゴリー:mubon-blog
先日のアップデートで1つのデータベースで複数のユーザが使えるように変更しました。
今日はブログのインデックスページを作成しました。
インデックスページにつけた機能は
1ユーザリスト
2最新記事
3検索(すべてのユーザの記事)
の3点です。
制作時間は1時間ほどです。
アップローダの更新 4/19
カテゴリー:南部ソフトウェア
先日作成したアップローダーの問題点の1つである
日本語のファイルのアップロードがMozilla/Firefoxでは可能だがIEでは正常に処理できない
という問題を本日修正しました。
日本語のファイルのダウンロードについて問題点
IEにおけるheaderのContent-Dispositionのfilenameの扱いが問題の原因でした。
IE以外におけるブラウザでは$fileにファイル名がはいっているとすると
文字コードをEUCからJISに変換し、その後さらにbase64_encodeをかけて書式にしたがって入力すると表示されました。ソースは下のようになっています。
$file = mb_convert_encoding($file,"JIS","EUC-JP");
header("Content-Disposition:
attachment;filename="=?ISO-2022-JP?B?".base64_encode($file)."?="");
しかしIEにおいてはファイル名をUTF-8で表記したものをx-www-form-urlでエンコードするという仕様になっているため上記の方法ではファイル名が文字化けしてしまって正常にダウンロードすることができませんでした。
IEの場合は以下のようにすると正常にダウンロードできるようになりました。
EUCーJPをUTFー8に変換し、さらにurlencodeをかける
ソースは下のようになっています。
$file = mb_convert_encoding($file,"UTF-8","EUC-JP");
$file = urlencode($file);
header("Content-Disposition: attachment;filename="".$file.""");
アップローダはUSER AGENTを取得してブラウザがIEかそうでないかを判別させて2通りの処理をするように変更しました。
かかった時間は2時間ほどです。
不特定ユーザ投稿型WebアプリケーションにおけるHTMLタグの制限
カテゴリー:HTML & CSS
不特定の人が投稿をすることができるWebアプリケーション(代表的な例では掲示板など)ではHTMLタグの使用を許可すると
ブラウザクラッシャーを組み込まれたり、フレームやフォームをつかって悪意のある外部サイトへの誘導されたりする可能性があります。
しかしすべてのタグを禁止してしまうとアプリケーションによってはユーザが不便になる場合もあります。
そこで危険のあるタグを制限する例をいくつかあげてみます。
◯imgタグ
---問題点---
タグ内にsrc="file:///c:/con/con/con.con"
Windows 9x系のマシンが停止するためブラウザクラッシャーに利用される。
タグ内にsrc="mailto:001@example.org"
メールウィンドウが勝手に開くためブラウザクラッシャーに利用される。
タグ内にsrc="file:///A:/example.002"
フロッピーディスクドライブにアクセスさせようとする、ブラウザクラッシャーに利用される。
その他にもimgタグを許可しておくとWebビーコンに利用される可能性がある
Webビーコンについては下のアドレスを参考
参考
@IT
http://www.atmarkit.co.jp/icd/root/96/92582496.html
「Webバグは悪玉じゃない」、米ダブルクリックがブロック機能に反論:
ITpro
http://itpro.nikkeibp.co.jp/free/NC/NEWS/20040929/150540/
---対処方法---
imgタグの使用は基本的にできないようにしておく。
ユーザに画像を投稿させる機能をつけたい場合はアプリケーションにアップローダ機能をつけアプリケーションを置くサーバにアップされた画像のみ表示させるようにすることで上の問題を回避できる
◯script,object,appleタグ
---問題点---
Java Scriptなどのプログラムを使い無限ループ、クロスサイトスクリプティングを用いたフィッシング詐欺などの利用される可能性がある。
---対処方法---
投稿文にjavascriptの開始タグがあれば一部分を置換するなどしてjavascriptのコードを書けないようにしておく。
javascriptの開始例には以下のようなものがある。
<script type="text/javascript">
<script language="JavaScript">
又onload,onclickのようなイベントハンドラをタグ中に入れることで実行することができる。よってこのイベントハンドラとなるものをすべて書けないようにしておく必要がある
イベントハンドラには以下のようなものがある。(javascript 1.3)
onAbort
onBlur
onChange
onClick
ondragdrop
onError
onFocus
onkeydown
onkeypress
onkeyup
onLoad
onmousedown
onMouseOut
onMouseOver
onmouseup
onmove
onReset
onresize
onSelect
onSubmit
onUnload
◯tableタグ
---問題点---
サイトデザインをtable構成で行っている場合、</table>などの投稿をされた場合デザインが崩れる。
---対処方法---
1.tableタグそのものを使えないようにする
2.<table>タグと</table>タグの位置が一致しない場合に自動的に</table> タグを挿入するようにする。
◯styleタグ
---問題点---
スタイルシートを使って文字サイズを極端に大きくしたりと意図しない使われ方をする可能性がある。
---対処方法---
スタイルシートタグを使えないようにしておき、スタイルシートが外部ファイルのみでコントロールする。
◯HTMLヘッダー関係タグ(html,head,meta,base,body)
---問題点---
HTMLヘッダーを変更されてしまう可能性がある。
---対処方法---
HTMLヘッダー関係のタグは使用をできないようにしておく。
◯フレームタグ(frame,iframe,frameset)
---問題点---
フレームを使い外部のサイトを呼び出されてしまう可能性がある
---対処方法---
HTMLヘッダー関係のタグは使用をできないようにしておく。
◯linkタグ
---問題点---
制作者が意図しない外部のファイルを読み込ませられるおそれがある。
---対処方法---
linkタグは使用をできないようにしておく。
◯formタグ
---問題点---
フォームを勝手に埋めこまれて、ボタンなどで危険なURLに誘導されてしまう可能性、
ページ観覧者が意図しないまま情報を不特定の人に与えてしまう可能性などがある。
---対処方法---
formタグは使用をできないようにしておく。
◯embed、bgsoundタグ
---問題点---
ページに音楽や動画などを
上に書いたようなタグは最小限のものです。
アプリケーションの目的によって安全かつ利便性があるように
使用できるタグをコントロールすることが必要です。
◯参考
TRUSNET:セキュアプログラミング
http://www.trusnet.com/secinfo/docs/webprog1/index.html