Esiste comunque la possibilità di disabilitare l'utilizzo di parametri validi?In Rails 4 disabilita i parametri Strong per impostazione predefinita
E so che è una vulnerabilità di sicurezza ma non ne ho davvero bisogno/lo voglio.
Esiste comunque la possibilità di disabilitare l'utilizzo di parametri validi?In Rails 4 disabilita i parametri Strong per impostazione predefinita
E so che è una vulnerabilità di sicurezza ma non ne ho davvero bisogno/lo voglio.
Se con "disabilita" si intende tornare alle linee Rails 3 in stile attr_accessible
, quindi sì.
Basta usare la gemma .
Non credo.
DHH commenta here on this pull request to add a disable switch to strong parameters
Tutto questo è una preoccupazione eredità comunque appena Rails 4.0 costringerà forti parametri su tutti e non sarà in grado di spegnerlo.
La disattivazione della protezione degli attributi è quasi sempre una cattiva idea.
Con quella nota obbligatoria di mezzo, ecco come spegnerlo:
config.action_controller.permit_all_parameters = true
Luogo questo config/application.rb
Naturalmente è possibile! Secondo Forti Documenti ufficiali di parametri (https://github.com/rails/strong_parameters), è possibile disattivare l'aggiunta di seguito i codici al vostro config/application.rb:
config.active_record.whitelist_attributes = false
Funziona per me in Rails 3.2
questo è per disabilitare protected_attributes – brauliobo
mi sono imbattuto in questo problema in cui mi stava cercando di memorizzare tutti i parametri da un webhook da Stripe.
Se si desidera consentire tutti i parametri per una singola istanza, è possibile chiamare #to_hash sul proprio oggetto params prima di passarlo nel metodo di inizializzazione.
Es:
@my_object = MyObject.new(params[:my_object].to_hash)
per fermare gli attributi proibiti essere controllati per le applicazioni è possibile assegnare il controllo ..
ad esempio mettere il seguente codice nel
config/inizializzatori/disable_strong_parameters.rb
module ActiveModel
module ForbiddenAttributesProtection
protected
def sanitize_for_mass_assignment(attributes)
attributes
end
alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment
end
end
Ho appena provato questo e non ha funzionato per me (su un'applicazione Rails 4.0.0). – Batkins
ha funzionato per me. D'accordo - è generalmente una cattiva idea - ma il mio caso d'uso è un sito di amministrazione dove gli amministratori possono cambiare qualsiasi cosa. – Zubin
Ha funzionato per me. Assicurati di inserire la linea nella classe Application e riavvia il server HTTP. – Guildenstern70