807267 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

まんじうこわい@楽

まんじうこわい@楽

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Keyword Search

▼キーワード検索

Calendar

Profile

hknopage

hknopage

Free Space

Category

Freepage List

2007.04.28
XML
カテゴリ:データベース
 今日はSQLインジェクション対策について、ちょっと悩み事です。
 
 私がデータベースで主に利用するのはMySQLです。
 
 しかし、開発環境によってはPostgreSQLOracleを利用する場合もあります。
 
 何となく察していただけたと思いますが、つまるところ
 
 「各開発環境に最適なエスケープ処理は何なのか?
 
 という事で悩んでいます。
 
 SQL文では必ず値をシングルコーテーションで囲むようにしています。その値に含まれるシングルコーテーションをエスケープ処理する方法が、ちょっと問題なのです。
 
 先月の日記で、シングルコーテーションはシングルコーテーションでエスケープ処理してあげる。という内容を書きました。
 
 しかし、MySQLはバックスラッシュでエスケープしてあげます。
 (mysql_real_escape_string関数を通した値を見ると、バックスラッシュによってエスケープしてある)
 
 でも、PostgreSQLでシングルコーテーション自身でエスケープさせてあげると、エラーも起こさずちゃんと動きます。
 
 Oracleで開発したときはバックスラッシュではなく、シングルコーテーションでエスケープしてあげました。
 
 こんな感じでちょっと混乱中です。
 
 Googleで検索かけてみると、バックスラッシュについての記事が圧倒的に多いです。
 
 もうホント大混乱です(@_@)
 
 大抵はその環境に合わせた関数(mysql_real_escape_stringとか)を利用しますが、その関数が使えなかった場合にどうするか!?
 
 私はシングルコーテーション自身でエスケープ処理してあげています。
 
 これが本当に正しいのかどうか・・・なんかちょっと不安になりました。
 
 
 おしまい





お気に入りの記事を「いいね!」で応援しよう

Last updated  2007.04.28 10:56:13
コメント(0) | コメントを書く
[データベース] カテゴリの最新記事



© Rakuten Group, Inc.
X