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

PHPのセキュリティに関する質問です。

現在、php5.2とMySQLを使ってwebサイトを作っています。
DBには、title,bodyなどのカラムがあり、
bodyの中身は、htmlで記述されたデータが入っています。(例:<p>あいうえお</p>)

こららのデータは、自分で直接insertしたもので、外部からinsert等できる機能はありません。

一般的に、出力時には、
htmlspecialchars
を使用すると言われていますが、
このような場合には、エスケープしなくても良いのでしょうか?
※htmlspecialcharsを使うと、htmlが無効化されてしまいます。

もしくは、他のセキュリティ対策があるのでしょうか?
どうか、ご教授お願い致します。

※ちなみに実際にはcakephp1.2 rc2を使用しておりますが、
回答は一般的なphpのセオリーで構いません。

●質問者: jojo_oraora
●カテゴリ:ウェブ制作
✍キーワード:BODY dB HTML MySQL PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●40ポイント ベストアンサー

このような場合には、エスケープしなくても良いのでしょうか?

ユーザーからの入力が管理画面等を含めて一切無いならエスケープの必要はない。

というか、データの取得元が違うだけでHTMLやPHPにべた書きしているのと同じ状態だからね。


もちろんインサート時に問題のあるコードを挿入することは可能だが、

それは Web アプリのセキュリティ対策とは別のお話。


2 ● もさてん
●30ポイント

「htmlspecialchars」に限って言えば、

外部から入力された悪意のあるコードに対して無効化するのが主です。

質問文からすると、外部からの入力は無いようですので、

特に対策は行わなくていいと思います。

ただし、セキュリティ対策と言っても様々なものがあります。

例えば、DBを使用していて、ユーザーの入力値を格納するのであれば、

「SQLインジェクション」というものに気をつけなければいけません。

様々なセキュリティ対策について、

IPAのホームページに分かりやすく説明されています。

http://www.ipa.go.jp/security/awareness/vendor/programming/intro...

関連質問


●質問をもっと探す●



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