2009-12-11 4 views

Répondre

3

les nommer quelque chose d'autre dans le code HTML, et mapper manuellement entre les noms de champs de base de données et les noms des champs HTML dans votre code PHP. Mais en réalité, si vous utilisez prepared statements et que vous effectuez les vérifications d'autorisation et d'erreur appropriées, peu importe si les gens connaissent les noms des champs de la table.

2

Je suppose que vous pouvez simplement renommer les noms de champs d'entrée si vous pensez que cela est un problème. Vous devez les lier aux colonnes SQL correctes à un moment donné.

Ce serait la sécurité par l'obscurité.

En prenant soin de la façon dont vous gérez l'entrée (pour éviter l'injection SQL) dans votre application sonne comme une approche plus sensible cependant.

1

Si cela est vraiment une préoccupation pour vous, alors que l'utilisateur champ1, champ2 (ou f1, f2) et les associer à vos champs de base de données dans votre livre de laboratoire. Mais, à moins que vous ne fassiez des appels de base de données à partir de votre code HTML, il y a très peu de choses qui peuvent être glanées sur la structure de la base de données elle-même en regardant les formulaires avec les noms de champs.

2

Je l'habitude d'ajouter un préfixe et suffixe sanitization/manutention commodité.

Par exemple, si un champ doit contenir seulement des lettres, et rien d'autre, je vais nommer ce tx_field_name, sinon, si peut contenir du code HTML filtré, hf_field_name ou complète html hx_field_name ... le script qui va obtenir le formulaire savoir comment désinfecter et vérifier les valeurs dans la base du préfixe.

Mais si votre sens est cacher explicitement le nom de la base de données de la colonne, eh bien, il a donné le nom que vous voulez, foo, bar ou ajouter des suffixes au hasard, ou même remplacer le _ avec - (qui sont autorisés dans les champs html nom, mais pas dans le nom de la colonne de base de données)

ps: j'espère que vous N'ÊTES pAS en utilisant un code comme

$values = $_POST; 
$n_val = count($values); 
$i = 0; 
foreach($values AS $key => $value){ 
    $pairs .= " `$key` = '$value' "; 
    if($n_val > $i){ 
     $pairs .= ', '; 
    } 
} 
thedbyouprefer_query("UPDATE table SET $pairs WHERE id = '42'"); 

pour traiter la forme, mais la cartographie avec php (..et un peu des staements préparés ne seront pas mauvais

Questions connexes