人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5のセキュリティの質問です。


ユーザーに文章を書いてもらって、それをDBに保存するシステムを作りたいです。(掲示板・ブログ等)write.phpにフォームがあってそこでユーザーに文章を書いてもらい、そのデータをPOSTでsql.phpに送ってDBに登録するとします。


とある書籍に以下のような事が書いてありました。

「悪意のあるクラッカーがwrite.phpを介さないで別のドメインから直接sql.phpにデータを送り続けるような事があるので、それを防がなくてはならない」

これを防ぐにはどのようなセキュリティ対策を施せばいいでしょうか。XSSやインジェンクションについてはきちんと対策すると仮定して、上記のセキュリティ対策のみ教えていただきたいと思います。


POSTされたデータがwrite.phpから送られたかどうかを判別すればいいんだと思うのですが、偽装するのも簡単なような気がします。どなたかよろしくお願い致します。

●質問者: tokyosmash
●カテゴリ:インターネット ウェブ制作
✍キーワード:DB PHP SQL Write XSS
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●25ポイント

セッション開始時に暗号キーを生成し、それを鍵として使う。

そんなのは面倒だからSSLを使う。

コストを抑えたければ共用SSLの使えるサーバーを選択。

共用SSLであれば利用開始までの面倒な手続きや設定も不要。

◎質問者からの返答

SSLは旧ジオトラスト(現グローバルサイン)ならそんなに高くないですね。ただ個人で、となると別問題ですが。勉強と趣味を兼ねてローカル内で作っているもので実際に公開するつもりは無いので、とりあえずセッションを使ってみようと思います。

回答ありがとうございました。


2 ● b-wind
●40ポイント

@IT:「ぼくはまちちゃん」 ――知られざるCSRF攻撃

そういうのは CSRF と言います。


基本的な考え方は「正規のフォームから投げられたかどうかをチェックする」と言う事に尽きます。

はてなキーワードからのリンクにも色々と対策方法が載っています。

CSRFとは - はてなダイアリー

◎質問者からの返答

>CSRF

キーワードを示していただいてありがとうございます。CSRFという単語はたまに見かけていたのですが、こういう事だったのですね。後は自分で調べられると思います。情報ありがとうございました。


3 ● KUROX
●25ポイント

こういうことがあるということです。

http://www.atmarkit.co.jp/fsecurity/column/ueno/33.html

対策としては

・Cookieを使ったセッションの追跡

・リファラーで発信元をチェック

・チェックコードを利用

あげられてます。

実際問題としては、

セッションIDににたチェック用のコードをPOSTデータに埋め込む

というやり方が多いと思います。

5分以内しか有効でないチェックコード(文字列)です。

そのチェックコードがあっていない場合は、5分以上たったか

外部から不正にアクセスされたと判断します。

◎質問者からの返答

mixiですら対策していなかったというのが驚きです。当時はまだ珍しい攻撃方法だったのでしょうか。

回答ありがとうございます。これからセッションを実装してみようと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ