Tranquiliste a écrit :
> Merci pour l'info.
>
> Concernant le risque d'insertion du code malicieux je le gère au
> niveau des named_scope avec le classique :conditions => ["champ1 = ?",
> champs1]
>
>   
Le code malicieux ne serait pas coté SQL, mais coté ruby exemple :

conditions => {:destroy_all}

revient à

Model.destroy_all

ca te semble sympa ?
> On 17 août, 16:13, Michel Belleville <[email protected]>
> wrote:
>   
>> Disons, il va falloir faire très attention aux exploits parce que ça veut
>> dire donner une marge de liberté assez importante que tes utilisateurs
>> peuvent utiliser pour insérer potentiellement du code malicieux ou détourner
>> ton outil de son objectif. Mais si tu veux faire ça, ça marche comme ça :
>> @model = eval("Model.#{condition}")
>>
>> Michel Belleville
>>
>> 2009/8/17 Tranquiliste <[email protected]>
>>
>>
>>
>>     
>>> Bonjour,
>>>       
>>> Une question de faisabilité:
>>> - j'ai un modèle sur lequel j'ai défini plein de named_scoped pour
>>> pour voir faire des recherches.
>>> - j'ai une form sur laquelle l'utiliseur peut saisir ses citères de
>>> recherche (checkbox, sélection, texte, ...)
>>> sachant qu'à chacun des critère correspond un named_scope
>>>       
>>> Quelle est la meilleure façon de construire ma recherche?
>>> Est ce que je peux renseigner une string et une fois que j'ai parcouru
>>> tous mes critères utiliser les named_scope? du style :
>>> condition = ""
>>> if criteria1
>>>  condition = condition + ".named_scope1"
>>> end
>>> if criteria2
>>>  condition = condition + ".named_scope2"
>>> end
>>>       
>>> et ainsi de suite et faire à la fin
>>> @model = Model.condition   (si oui quelle est la syntaxe?)
>>>       
>>> Merci
>>> Nicolas
>>>       
> >
>   


-- 
Cyril Mougel
http://blog.shingara.fr/


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à