Skip to content

feat(mobile): add upgrade SQL for existing installs (#894 review) - #1119

Open
SeanDuggan wants to merge 2 commits into
OWASP:devfrom
SeanDuggan:mobile-split/15-upgrade-sql
Open

SeanDuggan wants to merge 2 commits into
OWASP:devfrom
SeanDuggan:mobile-split/15-upgrade-sql

Conversation

@SeanDuggan

Copy link
Copy Markdown
Member

Part of splitting #894. Addresses review point 9: existing installations never re-run coreSchema.sql, so they keep the old mobile module rows.

Problem

  • The web /solutionSubmit endpoint rejects the flags the app shows, because the old rows have the wrong moduleResult or hardcodedKey for the nine modules fixed in the Insecure Data Storage, Poor Authentication, Client-Side Injection and Reverse Engineering PRs.
  • The Insecure Communication lesson and challenge don't exist on an upgraded database.

Change

  • updatev4_mobile_modules.sql: inserts the two new modules and their cheat sheets (only if missing) and updates the nine existing results. It is safe to run more than once.
  • docs/upgrading.md: new step 3 explaining how to run it in the Docker installation.
  • No Java changes. The script is applied manually.

Testing

Reverted the nine rows to their dev values and deleted the two new modules in a local MariaDB, then ran the script twice. Both runs finished without errors and left the same rows as a fresh install.

Depends on the module PRs for the row values, but it can merge independently.

coreSchema.sql only runs on a fresh setup, so existing databases keep the old
mobile module rows: the web /solutionSubmit endpoint rejects the flags the app
shows, and the Insecure Communication modules are missing.

Add an idempotent script that inserts the two new modules and their cheat
sheets and updates the nine existing results, and document it in the 4.0
upgrade guide.
Insecure Communication is deferred to 4.0.1, so the upgrade script no longer inserts
its modules or cheat sheets. It now only corrects the flags of existing app modules.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant