PretendoNetwork / website

Website for Pretendo Network
https://pretendo.network
GNU Affero General Public License v3.0
95 stars 80 forks source link

[Enhancement]: Restore the online files download for smaller servers #313

Closed MatthewL246 closed 4 months ago

MatthewL246 commented 4 months ago

Checked Existing

What enhancement would you like to see?

The website used to have a feature that allowed accounts to download fake Cemu online files instead of requiring accounts to be linked and dumped from a Wii U. I understand that this feature was purposefully removed for security reasons, so that console bans could be reliably enforced, but this would not be an issue on smaller private self-hosted servers.

I previously created a messy patch to restore this feature, but it would be better to have configurable support for it in the website and account servers.

Any other details to share? (OPTIONAL)

This would require several components that would be controlled by an environment variable like PN_WEBSITE_ENABLE_FAKE_ONLINE_FILES.

Additionally, there would need to be an option in the account server to bypass device certificate verification for these fake online files. Of course, it should be disabled by default and clearly labeled as dangerous. I previously created a basic patch for this, but I don't believe that it is a good solution because it does not set request.device, which could break things downstream.

I don't know if it would also be possible to create fake Citra online files.

jonbarrow commented 4 months ago

I'm not sure I agree with this. This would only be relevant to people trying to self host our entire website for their own purposes, which is very unlikely. Every project I've seen which has used our code has rolled it's own website, so they can just implement this themselves there. If someone REALLY wants to use our specific website, then this is the sort of large scale change which should just be done in a fork

Customizations are nice, but I'm not super interested in trying to account for every possible use case at times. Especially not on something that is likely to be rehosted like our website. This is starting to creep into "changes for the sake of changes" imo, since there's no objective reason why we should be the ones to accommodate this

As you said this would also require several other upstream changes and raise other potential issues. I'm not really interested in trying to account for all of this all over the place, especially since it's a feature that:

This belongs in a fork imo. It's also trivial for people to do this without the website. The OTP and SEEPROM "dumps" were just all null bytes, and the account.dat generation is beyond trivial. I wrote a stand-alone generator script for it almost 10 years ago https://github.com/jonbarrow/csms/tree/master/applications/accountdatgen, and there are websites out there that re-implement this exact functionality already https://github.com/GabIsAwesome/accountfile-generator (https://gbtptc.isledelfino.net/)

I strongly disagree with this being something we directly support

MatthewL246 commented 4 months ago

Understandable. There are already tools for this, and in the case of pretendo-docker, it would be easy enough to just make this a script. The console authentication bypass in the account server would be fine as a manual change for people to make instead of an option that you have to support.