Gibt eine Ausnahme aus, wenn ein Benutzer versucht, geschützte Attribute massenweise zuzuweisen

8

Ich behebe einige Sicherheitslücken in einer Client-Anwendung und möchte sicherstellen, dass Rails nicht automatisch versucht, geschützte Attribute zu maskieren. Stattdessen möchte ich eine Ausnahme auslösen, damit ich untersuchen kann.

Das heißt, wenn dies normalerweise in den Protokollen angezeigt würde:

%Vor%

Ich möchte stattdessen eine Ausnahme (oder zusätzlich) auslösen

Bearbeiten: Ich verwende Rails 2.3.4

    
Tom Lehman 05.04.2011, 21:12
quelle

1 Antwort

10

Du musst ein paar Rails-Affen-Patches machen, um das zu tun. Stellen Sie sicher, dass Sie diesen Code nur in der Entwicklung und / oder beim Testen verwenden, da Sie nicht möchten, dass Ihre App Fehler auslöst, wenn ein Benutzer versucht, eine Massenzuweisung vorzunehmen. Ich würde Folgendes zu config/initializers/error_mass_assign.rb hinzufügen:

%Vor%

Dadurch wird die reguläre Warnung ausgelöst, aber es wird auch ein RuntimeError mit der Meldung "Massenzuordnungsfehler" ausgelöst, wenn in Test- und Entwicklungsumgebungen jederzeit geschützte Attribute massenweise zugewiesen sind. Sie können die Fehlermeldung oder den Fehler im obigen Code auch ändern, wenn Sie eine andere Ausnahme bevorzugen.

Achten Sie darauf, dass Sie Ihre Konsole oder Ihren Server neu starten, damit dies wirksam wird.

P.S: In Rails 2 möchten Sie Folgendes tun:

%Vor%     
Pan Thomakos 05.04.2011, 21:23
quelle