2011-04-11 2 views
0

Quelqu'un peut-il utiliser cela dans ses propres projets? Si oui, comment? Je sais que cela aide à minimiser les attaques.Params.sort.key comment ça marche?

Si je dans ce qui suit dans mon contrôleur: [? Et ce que je devrais écrire ici]

mail_id = params[:mail_id].to_i 
user_id = params[:user_id].to_i 
token = params[:token] 

où dois-je écrire params.sort.key

+0

Où voyez-vous 'Params.sort.key' pourriez-vous nous donner un exemple? –

+0

bien sûr: par exemple: si params [: id] et params [: user_id] et params.key.sort == ['action', 'controller', 'id', 'user_id'] .. J'ai vu ça dans un projet –

+0

Pouvez-vous être plus précis sur ce que vous voulez réaliser? De plus, votre question est fausse quand elle dit params.sort.key. Comme vous l'avez mentionné dans le commentaire ci-dessus, il peut s'agir de params.keys.sort puisque params est un Hash. params.keys sera un tableau de toutes les clés du hachage. –

Répondre

2

Je crois que concept devrait travailler suit:

Vous attendez le hachage 'params de regarder un peu comme ceci:

params = { :mail_id => 1, :user_id => 2, :token => 'foo' } 

ce qui signifie params.keys retourneront [: mail_id,: user_id,: token]

params.keys.sort retourne les clés classées par ordre alphabétique: [: mail_id,: jeton,: user_id]

Donc vérifiez si params tiennent les clés exactes que vous attendez à avoir, vous pouvez faire:

if params.keys.sort == [:mail_id, :token, :user_id] 
     render :text => 'Serving your request' 
    else 
     render :text => 'Server understood the request, but refuses to serve it, since some of the requested data is missing' 
    end 

vous pouvez vérifier le contenu exact de hachage votre 'params de l'aide logger.debug (params.keys) dans votre contrôleur