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

phpでmysqlに接続する際、不正な文字をエスケープ等する必要があると知りましたが、フォームのタイプがテキストの場合だけではなく、任意の値が設定されているチェックボックスやリストボックスなどの場合でもエスケープ処理を行う必要があるでしょうか?

●質問者: 和食器屋koba
●カテゴリ:コンピュータ
✍キーワード:MySQL PHP エスケープ タイプ チェックボックス
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● JULY
●50ポイント

http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.h...

@IT:Webアプリケーションに潜むセキュリティホール(2) - Page1

基本的に必要です。


といのは、フォームデータを送るのはブラウザとは限りません。

ブラウザならリストボックスに無いデータ送られることは、基本的には、

ないですが、フォームデータを捏造して HTTP で送るプログラムは簡単に

作ることができます。ですので、各フォームのデータが HTML 上で

どんなデータタイプが指定されていても、送られてきたデータが

正しいか、問題ないかを php や cgi プログラム側で確認する

必要があります。

◎質問者からの返答

ありがとうございます。

大変参考になります。


2 ● kura_jet
●50ポイント

http://www.sound-uz.jp/php/tips/security.html

セキュリティ - PHP Tips

なぜエスケープする必要があるのか、ということを理解する必要があると思います。


HTMLのソースを保存し、HTMLを改ざんしてからあなたの作ったプログラムにsubmitををすると、チェックボックスやリストボックスなどの場合でも不正な値で処理されてしまいます。

よって、受取る値は全てチェックを行うべきです。

◎質問者からの返答

ありがとうございます。


3 ● andi
●50ポイント

http://a/

チェックボックスやリストボックスの場合でもエスケープの必要があります。

簡単に説明すると、作成者が<select name=”foo”><option>bar</option></select>としていても、悪意あるユーザは自分で<input type=”text” name=”foo”>と書いたHTMLを作成することも可能だからです。

(HTMLを作らずに投稿することも可能です)

◎質問者からの返答

ありがとうございます。


4 ● まきのっぴ
●50ポイント

http://www.netpub.tsuzuki.yokohama.jp/security/sec-0033.html

SQLインジェクションとは?

あります。

ユーザはフォームの内容を簡単に改変できるので、チェックボックスだろうとリストボックスだろうと、悪意があれば容易に任意のSQL文等に改変して送信されてきます。

フォームからパラメータとして送信されてくるデータは全て汚染されているという前提でプログラムを組むのが鉄則です。

http://www.hotfix.jp/archives/word/2004/word04-15.html

[HotFix Report] セキュリティ用語-SQLインジェクション(SQL injection)

その他SQLインジェクション関連の参考ページです。

◎質問者からの返答

ありがとうございます。


5 ● toptyan
●50ポイント

http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.h...

@IT:Webアプリケーションに潜むセキュリティホール(3)

たとえどんな場合でもSQL処理が発生する場合はエスケープ処理は施すべきです。

自分で作ったフォームがチェックボックスなどでも、誰かにSQLインジェクションできるフォームを作られたら目も当てられません。

エスケープ処理だけではなく、リファラーからデータ送信許可をするドメイン指定などやらなければならない処理は多いと思われます。

しかしながら、データの改ざんやデータを盗まれてからどうこう言うより面倒でもエスケープ処理やスパムなどの対策を事前に練ったほうが結果的にコスト安です。

また、SQLインジェクションだけではなくセッションやクッキーといったような処理を行う場合にも気をつけなければなりません。

セキュリティや嫌がらせ対策は大事ですね。

◎質問者からの返答

ありがとうございます。

皆様大変ありがとうございました。

大きな間違いをせずに済みました。

皆様の回答を参考に

製作を進めていきたいと思います。

関連質問


●質問をもっと探す●



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