- ベストアンサー
pg_escape_stringをする意味
がわかりません $msg=$_POST['msg']; $msg=pg_escape_string(htmlspecialchars($msg)); としてフォームから送られてきたデータをpg_escape_stringして データをデータベースに入れたりしますが どうしてそうしなければならないのでしょうか? 具体的にmsgがどんなデータのときにそうしないと困るのでしょうか? 単に echo $msg; するときには必要ないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
DBにsqlを流すときに、生のデータを投げると 巧妙に細工されたデータにより、DBのデータが 消されてしまったり、情報が漏洩してしまったり する場合が考えられます。 また、そんなに深刻ではなくても、エラーになって しまったりするとかっこわるいので、エスケープして 明示的な文字列としてしようすることが多いです。 一言でいうと、 「クライアントから送られてくるPOSTやGETデータは、 まったく信用してはいけない」ということで、 基本的にはすべての引数に対して、どのような データが入っていてもエラーにならないような 工夫が必要です。
その他の回答 (2)
- tomy06
- ベストアンサー率25% (58/224)
回答No.3
POSTするデータにSQLを埋め込まれる可能性があるからです 詳しくは参考URLを見てください
質問者
お礼
ありがとうございます エスケープされた文字列を見るにはどうしたいいのでしょうか?
- LancerVII
- ベストアンサー率51% (1060/2054)
回答No.1
こんにちは。 データベースに入れる際に問題の起きる文字列を加工してくれてます。 例えば\マークや'(シングルクォーテーション)等 単純に表示するだけなら行わなくてもよいと思います。
質問者
お礼
ありがとうございます 表示するだけならば何もすることはないのですね
お礼
ありがとうございます 投稿データにデータベースをアクセスされるということですね