1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-14 01:33:20 +08:00
osu-lazer/osu.Game/Beatmaps
Bartłomiej Dach 776fabd77c
Only use MD5 when performing metadata lookups
Both online and offline using the cache.

The rationale behind this change is that in the current state of
affairs, `TestPartiallyMaliciousSet()` fails in a way that cannot be
reconciled without this sort of change.

The test exercises a scenario where the beatmap being imported has an
online ID in the `.osu` file, but its hash does not match the online
hash of the beatmap. This turns out to be a more frequent scenario than
envisioned because of users doing stupid things with manual file editing
rather than reporting issues properly.

The scenario is realistic only because the behaviour of the endpoint
responsible for looking up beatmaps is such that if multiple parameters
are given (e.g. all three of beatmap MD5, online ID, and filename), it
will try the three in succession:

	f6b341813b/app/Http/Controllers/BeatmapsController.php (L260-L266)

and the local metadata cache implementation reflected this
implementation.

Because online ID and filename are inherently unreliable in this
scenario due to being directly manipulable by clueless or malicious
users, neither should not be used as a fallback.
2024-10-30 08:12:30 +01:00
..
ControlPoints move timing point binary search back inline 2024-08-21 01:50:52 +02:00
Drawables Fix preview play button having incorrect click area 2024-08-15 22:49:12 -07:00
Formats Implement auto additions editor-only 2024-10-01 16:40:48 +09:00
Legacy Add ScoreV2 to LegacyMods 2023-07-09 16:06:05 +02:00
Timing Enforce IBeatmap.Breaks to be sorted chronologically 2024-07-08 16:06:38 +03:00
APIBeatmapMetadataSource.cs Only use MD5 when performing metadata lookups 2024-10-30 08:12:30 +01:00
APIFailTimes.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Beatmap.cs Pass comparer in all usages for consistency 2024-07-08 15:58:21 +02:00
BeatmapConverter.cs Enforce IBeatmap.Breaks to be sorted chronologically 2024-07-08 16:06:38 +03:00
BeatmapDifficulty.cs Move object counts to BeatmapInfo 2023-12-13 17:33:24 +09:00
BeatmapDifficultyCache.cs Partial everything 2022-11-27 00:00:27 +09:00
BeatmapImporter.cs Add inline comments for iOS locals 2024-09-26 16:48:42 +09:00
BeatmapInfo.cs Expose no-op constructors as protected 2024-10-18 13:30:29 +09:00
BeatmapInfoExtensions.cs Move URL implementation to extension methods and share with other usages 2024-08-22 02:08:01 +09:00
BeatmapManager.cs Only update beatmaps which actually had offsets 2024-10-14 00:35:18 +09:00
BeatmapMetadata.cs Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
BeatmapMetadataInfoExtensions.cs Fix change in filter behaviour 2023-12-05 18:20:27 +09:00
BeatmapModelDownloader.cs Add ImportAsUpdate method to IModelImporter to avoid otehr changes 2022-07-26 15:49:04 +09:00
BeatmapOnlineChangeIngest.cs Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
BeatmapOnlineStatus.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapPanelBackgroundTextureLoaderStore.cs Update ImageSharp usages 2024-03-06 12:13:12 +08:00
BeatmapProcessor.cs Fix combo/combo colouring issues around spinners 2023-11-23 13:54:05 +09:00
BeatmapSetHypeStatus.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetInfo.cs It works now 2023-07-11 20:18:54 +02:00
BeatmapSetInfoExtensions.cs Move URL implementation to extension methods and share with other usages 2024-08-22 02:08:01 +09:00
BeatmapSetNominationStatus.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineAvailability.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineCovers.cs Fix tournament population failure when beatmap is not found on server 2022-09-01 22:03:01 +09:00
BeatmapSetOnlineGenre.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineLanguage.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineNomination.cs Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00
BeatmapStatistic.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
BeatmapStatisticIcon.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapUpdater.cs Also populate ObjectCounts when running a full beatmap process 2023-12-18 18:41:41 +09:00
BeatmapUpdaterMetadataLookup.cs Remove problematic online ID check 2024-10-30 07:40:08 +01:00
BeatmapUserSettings.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
BeatSyncProviderExtensions.cs Change IBeatSyncProvider.Clock to always be non-null 2023-07-13 22:13:40 +09:00
CountdownType.cs Automated pass 2023-06-24 01:00:03 +09:00
DifficultyRating.cs Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
DifficultyRecommender.cs Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
DummyWorkingBeatmap.cs Stop using visually noisy bg4 for default backgrounds 2024-05-03 13:38:27 +08:00
FlatWorkingBeatmap.cs Repurpose Flat{File -> }WorkingBeatmap 2023-08-12 00:49:42 +02:00
FramedBeatmapClock.cs Add comprehensive log output to help figure out problematic clocks 2024-02-29 23:05:28 +08:00
IBeatmap.cs Enforce IBeatmap.Breaks to be sorted chronologically 2024-07-08 16:06:38 +03:00
IBeatmapConverter.cs Automated pass 2023-06-24 01:00:03 +09:00
IBeatmapDifficultyInfo.cs Fix InverseDifficultyRange() not working correctly in both directions 2023-12-14 20:41:12 +01:00
IBeatmapInfo.cs Change default values of new object counts to -1 to identify non-processed values 2023-12-19 18:20:02 +09:00
IBeatmapMetadataInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IBeatmapOnlineInfo.cs Fix beatmap info length tooltip not showing actual drain length 2023-06-17 15:00:32 -07:00
IBeatmapProcessor.cs Automated pass 2023-06-24 01:00:03 +09:00
IBeatmapResourceProvider.cs Automated pass 2023-06-24 01:00:03 +09:00
IBeatmapSetInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IBeatmapSetOnlineInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IBeatSyncProvider.cs Remove mention of clock being nullable in IBeatSyncProvider 2023-07-18 13:08:23 +09:00
IOnlineBeatmapMetadataSource.cs Polish xmldocs 2023-06-08 19:11:48 +02:00
IWorkingBeatmap.cs Revert internal access modifier application 2023-06-08 15:23:09 +02:00
IWorkingBeatmapCache.cs Remove unnecessary invalidation handling flow 2022-06-30 17:13:26 +09:00
LocalCachedBeatmapMetadataSource.cs Only use MD5 when performing metadata lookups 2024-10-30 08:12:30 +01:00
MetadataLookupScope.cs Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
MetadataUtils.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
OnlineBeatmapMetadata.cs Refactor metadata lookup to streamline online metadata application logic 2023-06-08 19:11:48 +02:00
StarDifficulty.cs Guard against NaN star difficulty results 2022-06-29 21:02:29 +09:00
WorkingBeatmap.cs Fix usage of locked context without locking 2024-10-01 18:01:06 +09:00
WorkingBeatmapCache.cs Fix beatmap potentially loading in a bad state 2024-02-19 17:18:07 +08:00