Quand j'étudiais les rails, je ne comprenais pas vraiment ce qu'était le mot «vulnérabilité d'affectation de masse», alors j'ai cherché et résumé dans mes propres mots. p>
Plusieurs colonnes peuvent être spécifiées à la fois lors de la mise à jour de la base de données Rails.
Il est très pratique de pouvoir mettre à jour plusieurs colonnes en même temps. p>
Bien que pratique, il y a des parties dangereuses à l'affectation en masse. Autrement dit, les demandes non autorisées peuvent altérer les privilèges d'administrateur. p>
En effet, vous pouvez modifier le contenu publié sur le formulaire à l'aide des outils de développement de Chorme.
Par exemple, supposons que le modèle User possède un attribut admin qui indique si vous êtes un administrateur de site Web.
Si vous ajoutez l'attribut admin en utilisant Edit as HTML de l'outil de développement, entrez la valeur et envoyez-la, la base de données sera mise à jour telle quelle.
Dans ce cas, même si vous n'êtes pas administrateur, vous pouvez vous faufiler dans le site Web et faire des bêtises, ce qui est une situation très dangereuse.
* À partir de Rails4, il n'est pas possible d'enregistrer ou de mettre à jour dans DB à moins qu'il ne soit défini sur un paramètre fort. p>
Il existe un paramètre puissant pour éviter les vulnérabilités d'attribution de masse. p> En utilisant le paramètre fort
, vous pouvez empêcher les demandes non autorisées à l'aide des outils de développement. p>
params.require(:user).permit(:name, :email, :password, :password_confirmation)
Obtenez la valeur de la clé définie dans l'argument avec la méthoderequire et filtrez uniquement les paramètres que vous souhaitez autoriser avec la méthode permit. p>
Recommended Posts