Когда я запускаю следующую часть моего кода, появляется сообщение об ошибке« undefined method `each» for nil: NilClass.request.body.split ('&'). Каждый из них отображает неопределенный метод `each 'для nil: NilClass
if request and request.body
print_status(request.body);
request.body.split('&').each { |var|
parts = var.split('=', 2)
if parts.length != 2
print_error("Weird, we got a var that doesn't contain an equals: #{parts.inspect}")
else
fln,fld = parts
fld = Rex::Text.uri_decode(fld)
if fln == "script"
script = fld
end
end
}
end
Некоторые тесты с request.body:
- ---------------------------------- - request.body.class: String - request.body: script=test - request.body.split('&'): ["script=test"] - Sending - ---------------------------------- - request.body.class: String - request.body: script=alert%28%27ok%27%29%3B - request.body.split('&'): ["script=alert%28%27ok%27%29%3B"] - Sending - ---------------------------------- - request.body.class: String - request.body: script=alert%28%27ok%27%29%3B%3D - request.body.split('&'): ["script=alert%28%27ok%27%29%3B%3D"] - Exception handling request: undefined method `each' for nil:NilClass - ---------------------------------- - request.body.class: String - request.body: script=alert%28%27ok%27%29%3B%5D - request.body.split('&'): ["script=alert%28%27ok%27%29%3B%5D"] - Exception handling request: undefined method `each' for nil:NilClass - ---------------------------------- - request.body.class: String - request.body: script=alert%28%27ok%27%29%3B- - request.body.split('&'): ["script=alert%28%27ok%27%29%3B-"] - Exception handling request: undefined method `each' for nil:NilClass - ---------------------------------- - request.body.class: String - request.body: script=alert%28%27ok%27%29%3B+ - request.body.split('&'): ["script=alert%28%27ok%27%29%3B+"] - Exception handling request: undefined method `each' for nil:NilClass
Большинство специальных символов делают происходит ошибка.
Что может быть неправильным?
Что такое 'request.body'? Строка? –
Да, это строка. – Robert
Действительно ли это 'request.body.split ('&'). Каждая строка выбрасывает исключение? Я не вижу здесь проблемы, если 'request.body.split ('&')' всегда является строкой. –