Repository navigation
Conversation
This is a prerequisite to compare the browser's IP with the client's IP to detect phishing attacks. Signed-off-by: Florentin Putz <dev@fputz.net> Assisted-by: Codex:gpt-6.1-sol
Previously, we only supported accepting requests. But users might want to reject requests. Make declining invalidate the pending request. Prevent competing approvals or cancellations from overwriting the result. Signed-off-by: Florentin Putz <dev@fputz.net> Assisted-by: Codex:gpt-6.1-sol
Redesign the browser approval screens with clearer context, an account card with avatar, and explicit Decline and Grant actions. Show the requesting app’s IP address and display it alongside the browser IP, request age, and user agent. Indicate that the user agent is self-reported. Add popups for further information, but don't overload the user by default. Add a revocation-settings link after connection. Signed-off-by: Florentin Putz <dev@fputz.net> Assisted-by: Codex:gpt-6.1-sol
When the IP addresses of the requesting client and the current browser session differ, show a prominent warning and require an additional review step. Signed-off-by: Florentin Putz <dev@fputz.net> Assisted-by: Codex:gpt-6.1-sol
fput
marked this pull request as ready for review
November 3, 2026 19:18
fput
requested review from
Altahrim,
icewind1991,
kristian-zendato,
pringelmann,
salmart-dev,
skjnldsv and
sorbaugh
and removed request for
a team
November 3, 2026 19:18
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
After analyzing phishing risks in the current login flow v2, I came up with the following improvements to mitigate the phishing risks somewhat, particularly from remote attackers (i.e., attackers with different IPs):
These changes preserve existing client APIs and legacy login flows.
Before
And then after logging in:
After
Clicking "Continue" will show the login form. After logging in:
If the IP addresses of the client and the browser differ, a warning is shown:
Steps to test my changes:
In a nextcloud client (I tested with the macOS desktop client) try to add a new account and insert the URL of your instance (e.g.
http://nextcloud.local). Then observe the redesigned login flow.To test what happens when the IP address does not match, you can do something like this to fake the IP (using the dev docker setup):
Limitations
The IP comparison requires correctly configured proxies/forwarding in the nextcloud server to prevent IP spoofing.
Checklist
3. to review, feature component)stable32)AI (if applicable)