Urgent.News

What's breaking now, across thousands of outlets.

Tech

Your Supabase users can probably give themselves your paid plan. Here's the 30-second test

A lot of apps built with Lovable, Bolt or Cursor handle "upgrade to Pro" with one line in the browser: await supabase . from ( " profiles " ). update ({ is_pro : true }). eq ( " id " , user . id ); If that line works for your code, it works for anyone. Open DevTools, run the same thing in the console, and the paid plan is theirs. Same for plan , credits , role or trial_ends_at . Why RLS doesn't…

Supabase users may unintentionally gain access to a paid plan by following a simple 30-second procedure. This can be demonstrated by executing code in the browser's Developer Tools console, which grants the user the paid features. The usual method of restricting user updates to their own profile using PostgreSQL Row Level Security (RLS) is ineffective in this situation because it does not cover specific columns.

To prevent unauthorized access, there are three main solutions: granting updates per column, implementing a trigger to guard billing columns, or separating billing information into a distinct table with proper permissions. It is crucial to ensure that only the payment webhook can modify billing-related data, using a secure server-side key. Disabling Row Level Security is not recommended, even if issues arise.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Firewalls and Defence in Depth: Why One Wall Is Never Enough

Every post in this series has had a shadow. The OSI layers trusting the layer beneath. IP addresses that locate a machine but authenticate no one. DNS that cannot verify its own answers.

  • Firewalls act as first line of defense between trusted and untrusted networks.
  • Defense in depth proposes multiple layers of security controls.
  • Default-deny firewall blocks all traffic except explicitly permitted.

Chancay vs. Callao: Engineering an Interactive Trans-Pacific Maritime Logistics Explorer with Python, Streamlit, and Plotly

💡 Executive Summary: South America's maritime logistics landscape is undergoing an epochal transformation. The commissioning of the Megapuerto de Chancay (Terminal Portuario Multipropósito de…

  • Chancay port offers 17.8m draft, accommodating ULCVs up to 24,000 TEUs
  • Interactive web dashboard built with Python, Streamlit, Plotly, Seaborn
  • Dashboard quantifies fuel savings and CO2 emissions from Chancay migration

Google DevFest Central Valley: Community First, Buildathon Second.

TL;DR: My second DevFest Central Valley in Modesto was about who AI is for, from the mayor's opening to a keynote on AI as a community institution.

  • Mayor Sue Zwahlen emphasized community needs developers at DevFest Central Valley
  • Buildathon created accessibility checker Onceover for small business websites
  • AI framework guided by Lens, Voice, and Value influenced event discussions

More from Sunday 25 October →