Я поддерживаю устаревшую кодовую базу и заметил следующий код в одном из наших представлений:
ui30_select_tag(filter[:param_name], options_for_select(filter[:options], filter[:selected]), {
prompt: 'Select a filter...',
onchange: remote_function(
url: report_link_options[:url],
with: report_link_options[:with],
before: mask_expression
)
})
Если вы отправите URL-адрес в представление с соответствующими параметрами строки запроса, вы можетеуязвимы для атак XSS, поэтому для тестирования я отправил URL с:
http://localhost:3000/admin/report_benefit/update?plan_years=%2c236704494926'})%3balert(1)%2f%2f264lr9p7f
И вуаля, когда я выбираю раскрывающийся список, определенный в теге select выше, мой браузер выполняет предупреждение, на которое я указалпараметр plan_years.Report_link_options [: with] равно plan_years=,236704494926'});alert(1)//264lr9p7f
Так как функция remote_function просто принимает параметр :with
и создает javascript, вы не можете реально очистить строку от атак xss или любых вредоносных js, выполняющихся с тех пор, какон создает ajax js с параметрами.
Как я могу предотвратить передачу любых вредоносных js через предложение :with
в remote_function?Любая помощь будет оценена!