2011年4月6日水曜日

【PHPセキュリティ関連】ファイルアップロード攻撃について

お疲れ様です。

今回はセキュリティについて備忘録します。
PHPをコーティングしていくうえで、いろいろなセキュリティ対策を行なうかと
思いますが、今回はファイルアップロード攻撃についてです。

ファイルアップロード攻撃とは
「ファイルをサーバー上にアップロードした後、アップロードしたファイルにアクセスしてPHPコードやJavascriptを実行する」
攻撃です。


サーバー上で、任意のコードが実行出来てしまうので結構危険です。

対策としては

・ファイルをアップロードするフォルダを公開フォルダの外にする。
・アップされるファイル名をランダムにする
・転送スクリプトを書く

などがあるみたいです。

下記参考サイトに非常に分かりやすく記載があります。

参考サイト:http://d.hatena.ne.jp/owa-tayo/20100129/1264714595
owa-tayo初心技術者の玉手箱様 ありがとうございます。

以上

2011年4月5日火曜日

【PHP関連】mb_send_mail()関数の文字化けについて

お疲れ様です。
最近更新をサボっています・・・

いろいろと備忘録するネタはあるんですが
書くのを面倒くさがっています。
新年度になりましたので、気を引き締めていきたいと思います。

さて、件名の件で備忘録します。
非常に便利なメール送信関数のmb_send_mail()関数ですが
文字化けしましたので、その時の対処を備忘録します。

原因は
PHPのスクリプトを書いている文字コードと、そのPHPスクリプトを動作させるサーバーのデフォルトの文字コード設定の相違らしいです。

なので下記コードを追加すると解決しました。

カレントの言語を日本語に設定する
mb_language("ja");
内部文字エンコードを設定する
mb_internal_encoding("UTF-8");

この後にmb_send_mail()関数を実行します。

以上

2011年3月1日火曜日

【Joomla1.5系関連】パンくずモジュールのカスタマイズ方法

お疲れ様です。

今回は、久々にいじったCMSのJoomlaについての備忘録です。

しかしJoomlaといえば、
最近1.6系が正式にリリースされましたが、出たばかりのものは
大抵バグが潜んでいますので、1.5系がまだまだ活躍しそうだなと思います。

件名にもありますが、Joomlaには標準でパンくずを生成してくれる
モジュールが用意されています。
今回もそのモジュールを利用しようと思いましたが、
サイトトップが2つあるという変わったサイトとなっており
現在メニューをいろいろ駆使して(そこらへんは面倒なので省きます。。。)
トップが2つあるように見せかけています。

なので、パンくずモジュールを2つ利用する必要がありますが、基本的に
トップは1つという考えなので、2つモジュールを生成してもパンくずのHOMEを
クリックすると、一つのトップにしかリンクされません。

そこでもう一つのパンくずモジュールは、オリジナルで作成し(殆どコピーですが)
新たにインストールすることでパンくずを2つ使おうという考えに至りました。

オリジナル版ではHOMEのリンクを2つめのトップページ(みせかけの)にする必要が有るため
ファイルをカスタマイズします。方法は下記の通り

1.mod_breadcrumbs(パンくずモジュール)内のhelper.phpを開きます。

2.38行目あたりの$item->link = JURI::base();の部分を

$item->link = "(リンクしたいトップページアドレス)";

に変更します。

以上で完了です。

このJURI::base()がどうやら、トップページを引っ張っているようですね。

以上

2011年1月26日水曜日

【Office Access関連】Access2007にて「定義されているフィールドが多すぎます」と表示された場合

お疲れ様です。
ハマりそうだったので備忘録します。

Access2007にてテーブルを作成、または既フィールドの変更等を行なっている時
テーブルを保存する場合に
「定義されているフィールドが多すぎます」と表示され
うまくテーブルを保存することが出来ない現象が発生します。

考えられる原因として

1.定義可能なフィールド数255を超えている

があります。
ただし、「255もフィールドないぞ?!」という方もいらっしゃるかもしれません。
私もその一人でした。

その場合は次のAccessの仕様の可能性が高いです。

「Accessの内部でフィールド定義数のカウンター値が用意されており、フィールド定義時に加算されるが、フィールドの型などを変更した際にも加算され、フィールド削除時は減算されない仕様」

とのことです。つまり・・・

150のフィールドを定義した後、150フィールドの型を変更した場合は
150+150=300となり、255を超えているので定義されている~メッセージが表示されるということです。

解決方法は

「最適化」

これだけですみます。

意外に分からなかった方も多いのではないでしょうか。

以上です。

2011年1月6日木曜日

【VB関連】メッセージボックス内での改行方法

お疲れ様です。

新年明けましておめでとうございます。
今年もよろしくお願い致します。

新年初の投稿です。

何度も調べなおすので備忘録します。

メッセージボックス内で改行する場合は

例)Msgbox "abc" & vbCrLf & "123"

となります。

以上