function toKeyValue(obj) {
	var parts = [];
	forEach(obj, function(value, key) {
		if (isArray(value)) {
			forEach(value, function(arrayValue) {
				parts.push(
					encodeUriQuery(key, true) +
						(arrayValue === true ? "" : "=" + encodeUriQuery(arrayValue, true))
				);
			});
		} else {
			parts.push(
				encodeUriQuery(key, true) +
					(value === true ? "" : "=" + encodeUriQuery(value, true))
			);
		}
	});
	return parts.length ? parts.join("&") : "";
}
The software constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.