fc2ブログ

mysql_connectでpermission deniedで大はまりw。ケアレスミスには気をつけよう

Posted by html5_newbie on 08.2011 PHP 0 comments 0 trackback
久しぶりにやらかしてしまいました。

タイトルの通り、mysql_connectで大ハマリしてしまいました。


phpからアクセス時にpermission denied、出たわけですが、このエラーは単に、「権限がないよ」って言っているだけなのです。

DB作成なんて、これまで何回もやってるし、grant文なんて忘れるはずもありません。

しかし、何回試してもpermission deniedが消えなかったのです。

mysqlにrootでログインして、DBの権限の確認を行ったり、変数で指定していたmysql_connect関数に定数で入れてみたりと色々試しましたが解決できず。

30分強悩んで駄目だったので、とりあえず、夕飯を食べに行った(^_^;)


そして、よくあることですが、戻ってすぐ原因判明。

原因は、

違うサーバーにアクセスしていただけだった!


こういう単純なミスってよくあります。


今日は、会社の後輩も、私に聞いてきたことがあって、その内容は、


フレームワークでmodule、actionを指定してブラウザに表示しようとしていたんだけど、何故か表示されない


という内容だった。

見に行って5秒で原因判明。


私「congif.phpになってるよ(笑)」

無論、正しくは、

config

です。お互いケアレスミスには気をつけないとね(^_^;)

WEBサイトのセキュリティー「クロスサイトリクエストフォージュリとは?」

Posted by html5_newbie on 20.2011 PHP 0 comments 0 trackback
前回クロスサイトスクリプティングを記事にしましたが、今回もクロスサイトです。

・クロスサイトリクエストフォージュリ(CSRF)の事例

クロスサイトリクエストフォージュリの事例としてよくあるのが、

不特定の人が書き込む掲示板等にjavascriptを含めたリンク入りの記事を投稿するパターンです。

一時期1pxのiframeを埋め込む攻撃がはやりましたね。

この事例では以下のようなことができます。

他サイトの掲示板に自動で投稿するようなスクリプトを埋めこむ。

ユーザーのcookieの情報を他サイトに転送する。


・どのような対策が必要か

クロスサイトリクエストフォージュリには、万能な対策はありません。

対策をするとしたら、

ユーザー側は、誰が書き込んだかわからないようなリンクは、クリックで飛ぶのではなく、URLをコピーして、ブラウザに貼り付けて、URLに問題がないか確認してからページを表示するとよいでしょう。

WEBをよく利用する人は掲示板等で、

「ttp://~」とhを抜いたテキストのURLを見たことがあると思います。

これは、この攻撃を防ぐことができるのです。


サイト運用者の対策としては、リファラーチェックとか、画面遷移でのチケット発行ぐらいでしょうか。

クロスサイトスクリプティングとは?XSS対策は奥が深い

Posted by html5_newbie on 17.2011 PHP 0 comments 0 trackback
久々にプログラムの話。

クロスサイトスクリプティング(XSS)とは、なんぞ?

PHP初心者やデザイナーさんだと思うかもしれません。

・クロスサイトスクリプティングとは?

XSSとは、WEBシステムを攻撃する手法の一つです。WEB制作者は、この対策をする必要があるとされています。


・具体的にどんなWEBシステムでこの問題が発生するか


入力フォームに値をいれて、確認画面で入力した内容を確認するようなシステムが主です(他のケースもあります)。


・どんな対策をすればいいか

入力値のチェック(バリデート)
不正な入力値の無効化(サニタイズ)

基本この2つです。

PHPだとhtmlspecialcharsという「htmlタグ」、「&」、「"(ダブルクォート)」、「'(シングルクォート、オプション要)」を「>」などに置き換える関数があります。ユーザーが入力した内容を確認画面で表示する際は、基本この関数を使って表示します。

あと、hiddenのvalueに値を入れる場合、

echo '<input type="hidden" name="hoge" value="'.htmlspecialchars($value).'" />

というように、ダブルクォートで括るようにしましょう。

これで、概ね防ぐことができます。
最近のシステムでは、cssを入れられたり、javascript(ajax)を利用するようなシステムも多いので、この辺りもXSS対策が必要です。


・どんな被害をうける可能性があるか


cookieと呼ばれる個人のWEBブラウザ(internet explorer等)の情報が盗まれたりします。(他の被害をうけることもあります)

・誰が被害をうけるか

サイト制作者ではなく、サイト利用者が直接被害をうけます。サイト制作者も間接的に被害をうけます。


・XSS対策は必要か

必要と言えば必要でしょう。ただ、攻撃者は、XSSなんかより、もっと効率がいい攻撃方法を取るでしょうから、あまりXSSは狙われないかもしれません。


WEBシステムを作る際は、XSSだけでなくいろんなセキュリティー対策が必要です。

例えば、

バッファオーバーフロー
インジェクション
パストラバーザル
セッション乗っ取り
クロスサイトリクエストフォージュリ
クロスサイトトレーシング
画面遷移の正当性

などです。共通処理でできる対策はできるだけ共通で処理を行うのが安全なWEBサイト制作の基本となるでしょう。

PHP5でのRSS取得関数 simpleXMLとPHP等で便利な辞書登録

Posted by html5_newbie on 05.2010 PHP 0 comments 0 trackback
個人的に調べていることがあって、RSSをPHPで処理したくなったので、ついでに記述。

PHP5では、simpleXML関数を用いて、簡単にXMLデータをオブジェクト変数に入れることができます。

<?php
$rss = simplexml_load_file("http://feeds.fc2.com/fc2/xml?host=html5.blog20");
echo "<pre>";print_r($rss);echo "</pre>";
?>

phpを用いた、simplexml_load_fileの処理

もう一つ、私が以前からPHP開発ではよく用いている辞書登録

辞書登録文字「え」
変換後の文字「echo "<pre>";print_r($);echo "</pre>";」

$の後ろに配列名やオブジェクト変数を入れると、きれいに変数の中身を表示してくれます。

・さらにどうでもいいこと

Eclipseなどの統合開発環境・・・重いから嫌い
Windowsでのテキストエディター・・・秀丸やサクラが好きな人が多いですが、私はMKEditorを使っています。

開発環境で用いるエディタはいろいろありますが、個人的には、

VIエディタが最強です。

よく、VI以外の環境で、「:wq」とか文字列検索時の次のワードを指定する時に「n」とか押すぐらい、よくVIのコマンドをMKEditorなどに打ち込んでしまいます^^;
 HOME