2017-10-10 4 views
0

私はこのウェブアプリを持っており、ユーザー入力を受け入れることを扱う約15種類のファイルがあります。入力がサニタイズされたときにデータベースからデータを正常に返す方法は?

私はユーザー入力を取り込むたびに、filter_var()関数を使用して特殊文字を消去し、注射などをしません。

しかし、私はこのように、まだデータは、これらの特殊文字をフロントエンドに戻されている。この問題にエンコード実行してきた:

"'Sample & 'Code'" 

となり、フロントエンドに行きます...

"'Sample & 'Code'" 

などです。私は私の意見が出てくると思う。

私の現在の戦略は、バックエンド内のすべてのファイルにアクセスし、おそらくユーザーの入力を持っていた可能性が各出力に

html_entity_decode(htmlspecialchars_decode([text], ENT_QUOTES)) 

を使用しています。

このように、私の質問は、これを行うより効率的な方法があるかどうかです。フロントエンドでVueを使用して、バックエンドから受け取ったデータをカールしているので、バックエンドではなくフロントエンドで実行した場合、おそらく同じ時間になると思います。助言がありますか?

私のデータベースにデータをエンコードする前に念頭に置いておくべき戦略があるかもしれませんが、誰かが将来のプロジェクトで役立つ答えを与えることを期待しています。

答えて

0

phpのためには、json_encode()機能を使用することができます。

public function getSomeData() { 
    ... 
    return json_encode('Sample & 'Code'); 
} 

ここに私の仮定は、あなたがvar_dump('Sample & 'Code')をした場合、私はフロントエンドにそれを送信すると、それは、'Sample & 'Code'

+0

をプリントアウトするだろうということですIあなたが言ったようにそれを送信しますが、テキストは連想配列にあります。 'result' - > 'Sample &'コード ''問題は、テキストが "Sample& 'Code'"にデコードされていないことです。代わりに、私が与えた連想配列のように見えます。 – DJSweetness

+0

@DJSweetness私は 'json_encode([ '結果' =>がhtml_entity_decode( "" 'サンプル& 'コード' " ")])'を使用して問題を再現して、私は '{" 結果 "を取得:" \" 'サンプル&' コード'\ ""} '。 – Grigio

+0

私はjson_encodeの使用方法に同意しますが、html_entity_decodeを使用してデータを表示可能な形式に変換します。これはテキストの解読の答えですが、私の質問は、追加するよりもむしろデザイン戦略または簡単な方法に向いていますすべての変数にhtml_entity_decodeを設定します。 – DJSweetness

関連する問題