2016-04-18 24 views
0

私はウェブフォームを持っています。私は、フォームで、データベース内のフィールドに同じ名前を使用する必要がありますので、私はそれの恩恵を受けると、この(PHP)などの短縮コードを達成することができますフォームとデータベースのフィールド名は同じである必要がありますか?

foreach($_POST as $key => $value){ 
    if(is_allowed_field($key)) $fields_to_insert[ $key ] = sanitize_string($value); 
    .... 
} // 

または同一の構造がにデータベース構造を公開することができること悪意の個人ですか?たとえば、接頭辞を付けて別の名前を使用する必要がありますか?だから、これはより良いアプローチですか?

2番目のaproachは、たとえば、入力名= "passw"、データベーステーブルではpasswordと呼ばれるフィールドの名前になります。

+1

これらは同じである必要はありません。実際には、データベース内のコード名とsnake_case名にcamelCasedの名前を付ける多くの使用規約があります。 – JimL

+0

しかし、この規則は、固定され、目に見えるので、セキュリティは追加されません。 – Cesar

+0

セキュリティのために何も命名しません。 – JimL

答えて

1

そのようにする必要はありません。 あなたはこの実装を行うことができますが、ユーザが送信しているデータについては注意が必要です。 クライアント側(フォームとHTML)が変更しやすいためです。 また、ユーザーは自分が必要とする入力を追加できます。 まず、ユーザーから受け取ったデータに注意する必要があります。 あなたのデータベース構造は誰にとっても利用可能ですが、これは時には良くありません。 また、あなたのコードでどのような変数を受け取っているかをより明確に示すことができます。 許可されたフィールドをallowed_fields ... に入れるように強制するのではなく、何かを忘れている可能性があるためです。または秘密のフィールドを追加する...

余分な10行のコードを入力した場合でも、私はより明確になることを好みます。

関連する問題