2016-03-27 21 views
0

データを安全モードでデータベースに投稿したい。私は、データベースにこのタイトルを追加したい場合は 例えば:アポストロフィを持つ文字列をデータベースにデータベースに挿入する

$title = " here is title 'here is title' here is title "; 

は、アポストロフィを持って注意してください。

私は、文字列を安全にするために、この機能を使用します。

function stringsafe($string) 
{ 
    $string = strip_tags(trim(addslashes($string))); 
    return $string; 
} 

あなたは安全にするために、アポストロフィの前にスラッシュを追加することです見るように。

データをstripslashesで表示するとスラッシュを削除しようとしましたが、問題はありません。データベースにデータを投稿するにはどうしたらいいですか?

答えて

2

実際、親指の一般的なルールは、ユーザー入力を一切変更しないことです。可能な限り元のユーザー入力を保持できるように、ユーザー入力をそのままデータベースに格納し、表示または使用する必要がある場合にのみエスケープする必要があります。

あなたのケースでは、あなたはそれが注入されるのを防ぐ必要がありますが、元の入力にスラッシュを追加することによって元の入力を変更していることは間違いありません。タイトルに<My 21st Birthday Party!>のような文字列が含まれていて、それを削除した場合はどうなりますか?

代わりにPrepared Statementsを使用してください。注射の心配なしに、データベースにデータを挿入できます。また、HTMLページやコンソールに表示するデータが必要な場合にのみ、htmlentitiesなどのようにエスケープします。