Colpire un'applicazione rotaie con i seguenti parametriSi prevede che questi parametri aumentino sempre un 500 in qualsiasi applicazione Rails?
http://example.com/?b=1&b[a]=2
rende sempre sollevare un errore che sembra essere non catchable.
Ad es.
Si pone il seguente errore:
Invalid query parameters: expected Hash (got String) for param `b'
La richiesta non colpisce il codice dell'applicazione Rails.
Qui ci sono le ultime righe della piena backtrace:
ActionController::BadRequest (Invalid query parameters: expected Hash (got String) for param `b'):
rack (1.5.2) lib/rack/utils.rb:127:in `normalize_params'
rack (1.5.2) lib/rack/utils.rb:96:in `block in parse_nested_query'
rack (1.5.2) lib/rack/utils.rb:93:in `each'
rack (1.5.2) lib/rack/utils.rb:93:in `parse_nested_query'
rack (1.5.2) lib/rack/request.rb:373:in `parse_query'
actionpack (4.1.4) lib/action_dispatch/http/request.rb:313:in `parse_query'
rack (1.5.2) lib/rack/request.rb:188:in `GET'
actionpack (4.1.4) lib/action_dispatch/http/request.rb:274:in `GET'
actionpack (4.1.4) lib/action_dispatch/http/parameters.rb:16:in `parameters'
actionpack (4.1.4) lib/action_dispatch/http/filter_parameters.rb:37:in `filtered_parameters'
actionpack (4.1.4) lib/action_controller/metal/instrumentation.rb:22:in `process_action'
actionpack (4.1.4) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.1.4) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.1.4) lib/abstract_controller/base.rb:136:in `process'
actionview (4.1.4) lib/action_view/rendering.rb:30:in `process'
actionpack (4.1.4) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.1.4) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.1.4) lib/action_controller/metal.rb:232:in `block in action'
actionpack (4.1.4) lib/action_dispatch/routing/route_set.rb:82:in `call'
actionpack (4.1.4) lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
actionpack (4.1.4) lib/action_dispatch/routing/route_set.rb:50:in `call'
actionpack (4.1.4) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.1.4) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.1.4) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.1.4) lib/action_dispatch/routing/route_set.rb:678:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.1.4) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
ho scoperto questo un paio di anni indietro nel Rails 3.2 e mi chiedo il motivo per cui è ancora blocca sul Rails 4.1.4.
Qualcuno ha una buona spiegazione di ciò che sta accadendo qui?
params sono davvero assurdi ma hai ragione, dovrebbe colpire l'app rotaie in qualche modo – apneadiving
Esatto. Tuttavia, penso che ci sia una specie di piccolo problema di sicurezza qui. È facile scoprire se il server web sta usando Ruby on Rails o no, il che dovrebbe essere oscurato da IMHO. –