-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Misconfigured f-API can create infinite request loop #89
Comments
We want to keep our issues up to date and active. This issue hasn't seen any activity in the last 75 days.
|
After further investigation into this issue, I think this will actually require more effort to resolve than it's probably worth. The problem is that the only port exposed to the f-API is To catch misconfigurations, we would probably need to expose Instead, maybe we could try to prevent these issues by updating our docs with a warning about the ports. |
We can also attach some unique identifier for the node making the request as part of the request. Then the solution would be more generic:
But I agree with you @alyssadai, that's more involved and not for now. Maybe a good time to look at this again would be when we address auth - because each node will have a unique client_id as part of that, and we could reuse the client_id for this purpose. |
Thanks @surchs. To clarify, the ideal solution would be generic enough to detect a request coming from any f-API, regardless of whether or not the f-API is part of the same stack as the recipient f-API, to avoid unpredictable behaviours. That said, I guess the infinite request loop would only happen if an f-API is actually pointing to itself. |
If I
Then: I can create an infinite loop because once I send a query to my f-API, it will then send a query of its own to any APIs listed in
local_nb_nodes.json
- including itself. Because the f-API endpoints are so similar to the n-API endpoints, this will actually be a valid query request, thus starting another federated query and so on.We should:
local_nb_nodes.json
and then write a test to make sure we prevent a loop from happening in this caseThe text was updated successfully, but these errors were encountered: