Come trasferire l''id' in modo più sicuro nel progetto Rails?

1

Ho controllato il mio progetto di rotaie con un frenatore e ho ricevuto un avvertimento.

Potentially dangerous key allowed for mass assignment: params.require(:inspector_id)

class ReportsController < ApplicationController
  ...
  def report_params
    params.require(:report).permit(inspector_id, ...)
  end
end

class Report < ApplicationRecord
  belongs_to :inspector 
end

class Inspector < ApplicationRecord
  has_many :reports
end

Come trasferire l'ID in modo più sicuro?

    
posta Igor Polyakov 18.12.2017 - 13:07
fonte

1 risposta

1

Questo dipenderebbe dal tuo modello di permessi. Allo stato attuale, una chiamata a update_attributes ecc. Consente a chiunque abbia le autorizzazioni per aggiornare un report di collegare anche quel rapporto a qualsiasi ispettore. Se questa non è un'operazione privilegiata nella tua applicazione, ad es. se tutti i tuoi utenti hanno gli stessi diritti e dovrebbero poter accedere a tutti i record nel tuo database, potrebbe andar bene.

Altrimenti dovresti controllare se l'utente corrente è autorizzato a stabilire un collegamento tra il rapporto e l'ispettore specificati. Naturalmente, ciò che funziona è altamente dipendente dalla tua applicazione; se vuoi un bel modo per organizzare le tue autorizzazioni in un posto centrale, ti invito a dare un'occhiata a cancancan gem:

link

In ogni caso, il problema non è il modo in cui l'ID viene trasferito, ma potrebbe essere necessario controllarlo prima di accettarlo nel tuo database.

    
risposta data 18.12.2017 - 13:25
fonte

Leggi altre domande sui tag